Introduce per-lcd global segment page where each lcd will have its
boot_info. Modify lcd_get_boot_info to pull the page from gs instead of
a hardcoded address. Now, only gs:0x0 is populated. In the future, if
needed, we can have other private per-lcd variables as well.

Earlier the gs base was set to NULL. Now allocate a page
and configure lcd to use that page for saving and retrieving
the stack canary. Apart from stack canaries gs can be used for other
purposes as well (Such as percpu).

Introduce a wrapper lcd_create_module_lcds on top of lcd_create_module_lcd
to create child LCDs where we map the same code/data pages created by
the parent LCD. Add an additional parameter is_child to routines which
should differentiate between a parent and child LCD.