Refactored DataLump / DataIO

Refactored to avoid multiple Inheritance, and so that there is a non
virtual inheritance path from FileLikeReader -> DataLump
Allow derived readers / writers to access file

the file reference is now a protected variable.

Also fixes an integer overflow bug in the dataLump templatec
Handle core files when profiling tests

Handle core files generated whilst profiling tests

(Remember to manualy add -ggdb to the flags if you need code
information...)
Add the ability to not build tests

Add the ability to suppress the build time test framework.
Add runtime information to test output
Add the ability to run a release build

- DEBUG_FLAGS can now be over-ridden by the calling makefile
- RELEASE_FLAGS can now be over-ridden by the calling makefile

new make file switch:
- RELEASE_ON

new command line goals:
- debug
- release
Refactor makefile

DEFAULT settings are now defined in a compiler specific include file.

This is the first step for enabling multi-compiler support
Support the INTEL compiler

The CPP library, and makefiles, now support using the INTEL tool chain.

A new TOOL_CHAIN can be set to either GNU or INTEL