Merge branch 'production'
Trivial change to solution file, removes reference to nonexistent file.
Resolve #15 - alter namespace of IEnumerableExtensions to CSF.Collections

This functionality shouldn't have been in the root namespace in the first place.

* Functionality and tests still exist for the old namespace but are marked
  obsolete.  In the next major version they may be removed.

* Tests added for functionality in new namespace.
Resolve #10 - fix NIE in AssemblyExtensions type.

This was a missing implementation, it has now been provided and tests written
for it.
Resolve #14 - extend functionality of IEnumerableExtensions

This adds functionality for a generic-typed IEnumerable<T> to be turned into a
separated string, including using a 'selector' function.  For example:

IEnumerable<DateTime> test = // Create a DateTime collection
test.ToSeparatedString(", ", x => x.Year);

This would return a separated string containing only the years, and not the
whole DateTime instance.

* Some trivial refactoring of the IEnumerable extensions, but no
  non-backwards-compatible changes to the public API.
Resolve #12 - add "to readonly list" functionality for ILists.

This is new functionality that copies a mutable list as a readonly list.
Move the CSF.Reflection.EnumExtensions.IsDefinedValue to CSF namespace.

This method did not really belong in the 'Reflection' namespace and new
functionality is about to be added to an EnumExtensions type in the base
namespace - so this seems like a sane thing to do.
Resolve #16 - Add 'HasFlag' enumeration extension method.

This analyses an enumeration value and determines whether or not it contains
a given flag value.

* Tests added

* Two sister methods of AddFlag and RemoveFlag were dropped from this issue, as
  they are too complex to implement properly.  If they are desired then they can
  be added into a new issue of their own.
Refactor the unit tests for Entity`2, introduce tests to illustrate #18

The unit tests are now a little smaller and thus more obvious as to what they
test exactly.  This is essentially only a trivial change however.

More importantly, two new unit tests have bee introduced that illustrate a
weakness in the current API.  This is a simple mistake that can be made by
developers, which leads to a hard-to-notice bug in the client code.  It is
fully described by issue #18.
Add test case to illustrate #20 - one-to-many lists can go out of sync

This illustrates how, if a list is replaced at the backing store level (such
as by NHibernate when retrieving items from the database) then the lists can
become out of sync and bugs can be introduced.  For full info see issue #20.
Resolve #20 - one-to-many lists can go out of sync if backing store is replaced

This fix adds a check that the 'source list' is indeed the same list instance
that the wrapper wraps.  If the source list has changed since the wrapper was
created then the wrapper is discarded and created/initialised afresh.

This fixes the issue whereby the wrapper and the private backing store for such
a property can go out of sync, should the private backing store be replaced
after the wrapper was generated.
Resolve #18 - improvement to (event bound) reference-list API

The revised API makes it much easier to accidentally forget to the use the
return value of the 'Replace' method.  That is - there is no return value,
instead it uses a 'ref' parameter.

* Old API still exists and works but has been marked obsolete.  It will be
  removed in v3.x.
Resolve #17 - adds a README file to the root of the repository

This file simply describes that the project is copyright CSF Software Limited
and that it is released without warranty under the GNU GPL v3.

Perhaps in future, more could be done with it (including a GH-pages site?).  In
the meantime this will stop github complaining at me about it.
Resolve #19 - add new exception extension methods to fix stack traces

This essentially provides a priority-ordered way of attempting three differing
mechanisms to preserve/fix the stack trace for an exception, choosing to use the
first of those mechansims that succeeds.

* Add tests for this functionality.

* Credit for the 'serialization' mechanism (StackOverflow) added.
Resolve #21 - add extension method to ICollection<T> that replaces the contents

This would be used when you cannot assign directly to the collection (say it was
a read only property, or there is another reason why the same instance must be
used).  It clears the collection and replaces all of its elements from a
replacement collection.
Resolve #11 - add shortcut extension method to IDbCommand to add a parameter

This is really just a convenience method to add a named parameter in one line
rather than needng four lines of code to do the same.  Nothing fancy.
Update README to reference the new API documentation.
Add initial work on Doxygen configuration script for building docs
Resolve #26 - renaming the INHLinqWrapper type to ISessionWrapper

This type was previously released in 2.4.x and so to maintain compatibility it
has been marked obsolete.
Resolve #22 - DynamicSelect types are in incorrect namespace

In fact, these types have not yet been integrated into the project, they are
part of a future issue to work on: #28.

* Moved these source files to a doc directory where they can be picked up and
  worked on later.