Add ELFFile.map() method to get file offset from memory address
Load all dynamic linking entries on first access and index them by tag type
Split string table base class into separate module
Get string table from dynamic linking array rather than section headers

Signature of the Dynamic class constructor is modified, but it should be
compatible with before.

Should close #3. Original explanation from Mike Frysinger:

    At runtime, ELFs do not use the section headers at all.  Instead, only
    the program segments and dynamic tags get used.  This means you can strip
    the section table completely from an ELF and have it still work.

    In practice, people rarely do this, but it's not unheard of.  Make the
    Dynamic tags work even in these cases by loading the strings table the
    same way the runtime loader does:
     - parse the symtab address from DT_STRTAB
     - locate the file offset via the program segments