DbContext duplicate key issue fixed

Added more advanced logic in the UpdateItem to add the current item to
the current context if needed or to update the values of the item that
is already in context.  This seems to fix the duplicate issue error
without having to change DynamicProxy classes to POCOs.  If needed I
have that logic available and it just needs to be tested more.  Fixes
#50

Added a MaxResults property and configuration value option to all
CachingStrategies.  If the number of results from a GetAll or FindAll is
more than this number then the results are not cached.  If it null (the
default) then the check is not done and the results are always cached.
Fixes #65