WIP the new key-value-serializer feature - mapping model provisionally complete

This is being altered to use a fluent-style interface along with a far superior
method of serializing and deserializing.  Extensibility is also addressed to an
extent.

* The basic mapping model for this is now essentially completed - and any
  serialization/deserialization scenario that is currently envisaged can
  provisionally be mapped successfully.

* The next step is to create the fluent interface for configuring those mappings

* Lastly, the actual serialization/deserialization mechanisms need to be written
Forward-port master development channel into the collection-serializer feature

Conflicts:
	CSF Software.sln
	CSF/CSF.csproj
	CSF/Collections/KeyValueSerializer.cs
	Test.CSF/Test.CSF.csproj
WIP the key/value serializer - provisionally finished work on mapping helpers

This provisionally completes the work on the mapping helpers, meaning that it is
now theoretically possible to map any object hierarchy.

* Some unit tests created to verify this
Early prototype of the deserialization functionality - needs more testing

Some of the deserialization functionality is working but in a prototype state.
More unit tests are required and then later some refactoring and cleanup.

* Serialization functionality still to-do as is deserializing from a collection-
  based root.  Also, comma-separated lists are not yet tested
Lots of progress on the key/value serializer & a few other minor changes

This comitt fixes a number of bugs present in the previous commit and adds
functionality that places us very close to the completion of the work on the
key/value serializer (at least, it feels like we're close).

* Some refactoring & cleanup of the serializer, although more needs doing.

* Split the serializer up into three separate types - based on their purpose:
  * Class-like objects, reference-type collections & value-type collections.

* Added functionality to access mappings directly and get their key-names.

* Removed the old "identity unwrapping service" functionality.  It never really
  worked out the way it was envisaged and has been more of a bother than a help.
  * This functionality has seen a partial replacement with an extension method
    for an NHibernate ISession to deal with Identity<TEntity> instances.

* Revised (and renamed) the 'Nullable' functionality (static class) to
  'NullSafe'
Refactoring, tidy-up, documentation and testing of the key/value serializer

There are very few (if any) functionality changes to the serializer in this
commit but many improvements to the organisation of the code, the documentation
and also the test coverage (with many empty placeholder tests written for tests
that are desired).

* Much code moved further up the inheritance hierarcy within the mapping model.

* Unification of the serialization/deserialization methods for collection-like
  mappings.

* Renaming of files and removing obsolete code.
Merge branch 'master' into feature_collection-serializer
Removed unwanted directory info file
Provisionally completed work on the key/value serializer

This commit introduces more tests and fixes such that (provisionally) all of the
work on the serializer is complete.  Anything possible remaining issues can be
discovered during early/alpha usage.

* Further unit tests

* Bugfixes
Merge the key/value serializer feature branch into master development channel