Code Quality Improvements

Non functional enhancements to the code base:

- The std::containers do not implement virtual destructors,
  so DataVector, should not publicly inherit from std::vector.
  This has now been fixed

- The DataVector now initializes the new memorry to the null
  char when it is expanded

- The header returned by NewObjectFile no longer has
  uninitialized components

- By reading out the result data from ElfFile, the
  generated file is now checked for unintialised data by valgrind
Add some utlity commands to breakpoints.vim

-> Add BAdd and BDelete so that the BA and BD shorthands are available
   to users
-> Add BreakFile to users can access the file be maintained
Add test for uninitialised memory

By reading back out the file generated by ElfFile, valgrind will warn us
of uninitialised memory