Clean up the test directory
Create an array implentation of the IO interface

-> Define a new interface FileLikeObject which supports both reading and
   writing.
   The object virtually inherits from both the reader and writer so can
   be used where ever a reader /writer object would have been used.
-> A new DataLump object inherits from DataReader and DataWrtier
   Virtual inheritance from FileLikeObject allows it to be used as a
   Reader, Writer or both.
-> A new test script validates the behaviour of the DataLump and the new
   interface

When the DataLump can be resolved directly by the compiler at build time
it behaves at array speed (actually slightly faster at -O2). When it is
used behind the IO interface it behaves slightly slower (~17%) than a
raw array on the heap.

Test results are for approximatesly:
-> 3 memsets on the full array (len 1.0737e+09)
-> 7.5162e+08 writes
-> 1.6106e+09 reads
-> 1.0737e+08 random (every 10 elements) writes
-> 1.0737e+09 consecutive reads
***********************************************************
Running auto test: /home/lhumphreys/Linker/Tests/tests/dataSpeed
Validating dataLump object..
  Using raw arrays on the heap: 3.6s
  Using raw arrays on the stack: 2.19s
  Using dataLump on heap: 3.9s
  Using dataLump on the stack: 1.65s
  Using virtual interface (heap): 4.24s
  Using virtual interface (stack): 3.82s
TEST PASSED
************************************************************
Support building with optimisation flags

The makefile library has been enhanced to support building with custom
flags and switching off the debugging flag
Use the new DataLump in stringTable test