Added gcov build option for measuring code coverage of unit tests.

Probably should think about moving tests to a framework such as boost
test or google c++ mocking.
Updated makefile.
Added specialisation for auto destruct for array types. Auto newing
array types throws bad_alloc exception.
Specilised defaut_new for array types so can only accept size_t
indicating the number of items in the array to allocate.
Adding instrumentation build source and config.
Added thread id identifier to instrumentation.
Added instrumentation parser. Parses instrumenattion log to an xml file
indicationg call hierachy.
Trying to make ioc resolve shared_ptr's only. Need to make complex
resolution resolve shared ptr's by unwrapping some how.
Adding functionality so a shared_ptr is returned during resolution.
Fixed code and tests.
Initial work to change vector into a map of maps for speed.
Completed refactoring of mapped types.
Tidying code, removing unnecessary code.
Added container registration back using custom deleter to init
shared_ptr to self.
Fixing test failure when compiling with gcc. Expansion order appears to
differ between compilers which is interesting.
Merge branch 'master' of https://github.com/nickrmc83/ioc_container