Add support library.

The parsing routines in the linker script to parse strings encoded in various
formats(hexadecimal, octal, decimal, etc), is needed by the GNU driver too. This
library provides helper functions for all flavors and flavors to add helper
functions which other flavors may make use of.
[ELF] Support -z max-page-size option

The GNU linker allows the user to change the page size by using the option -z
max-page-size.
[Gnu] Add options that are ignored

Add options that are ignored and exists just for compatibility reasons.
[ELF] .dynamic should have SHT_DYNAMIC flag
[ELF] Fix values of linker created dynamic variables.

The value of _DYNAMIC should be pointing at the start of the .dynamic segment.
This was pointing to the end of the dynamic segment. Similarly the value of
_GLOBAL_OFFSET_TABLE_ was not proper too.
[ELF] Fix DT_INIT_ARRAY{SZ} and DT_FINI_ARRAY{SZ}

The dynamic table was creating the entry DT_FINI_ARRAY{SZ} even when there was
no .fini_array section. The entries should be creating in the dynamic section
only if there are sections .init_array/.fini_array in the output.

Fixes the tests that checked for errroneous outputs.
[Gnu] Support --image-base option

The value for --image-base is used as the base address of the program.