ProgramHeader now derives from Elf64_Phdr

Use inheritance rather than managing an internal object
Add flag manipulation utility functions to RawProgramHeader
Compatibility Enhancements

stdReader / stdWriter objects use the istream and ostream classes
so they are now both compatible with the fstream object

programHeader publicly exposes the utility funcitions on the base
class, whilst preventing casting to it

ElfHeaderX86_64 can now be initialised of a temporary BinaryReader
object (added move constructor)
Make default RawProgramHeader default constructor publicly available