Merge pull request #65 from Fraser999/routing_v2

Routing v2
linux compile fixes
Added another test for sorted vectors and confirming closest node.
Merge branch 'routing_v2' of github.com:fraser999/MaidSafe-Common into routing_v2
Merge remote-tracking branch 'maidsafe/next' into routing_v2
Merge branch 'routing_v2' of github.com:fraser999/MaidSafe-Common into routing_v2
Merge branch 'routing_v2' of github.com:fraser999/MaidSafe-Common into routing_v2
removed templated enum - back to enum class for now
Merge branch 'routing_v2' of github.com:dirvine/MaidSafe-Common into routing_v2
Linked standalone Asio.
lru cache and tests
Merge remote-tracking branch 'dirvine/routing_v2' into routing_v2
Minor updates.
Used partial specialisation and inhertiance of LruCache to handle void ValueType.
Fix SerialisableTypeTag to be uint16_t.
Fixed Clang errors in LruCache.
Fix for MSVC error.
Reapplied IsZero to NodeId to allow easier transition of existing code.
tiny update to test (split into 2)
Updated compile_time_mapper to handle string and vector<unsigned char>.