Removed commented stuff
* Abstracted out the MongoClient object into MongoClientConnection.   Got
  errors trying to make it a singleton though.  Will revisit later.
* Removed all logic code and mongo stuff from InventoryRestService.
  In process of moving it to the mongo DAL.
* Abstracted out the MongoClient object into MongoClientConnection.   Got
  errors trying to make it a singleton though.  Will revisit later.
* Removed all logic code and mongo stuff from InventoryRestService.
  In process of moving it to the mongo DAL.
Added 'body' parameter to the put methods.
Added 'body' parameter to the put methods.
* The main "Add Item" API has been changed.  It used to be POST {json body},
  but it's now PUT {json body}.  This is because it is essentially the same
  as a whole-update (replace) of an object, and it is idempotent.
  PUT should be used whether adding a new item now.
* Similarly, the "update" method that used to be POST, is now removed
  and replaced by the PUT method mentioned above.
Added a PUT {json body} method based on the old postItemParams.
New function is called putItemParams.
Updated doc (putItemParams)
* The main "Add Item" API has been changed.  It used to be POST {json body},
  but it's now PUT {json body}.  This is because it is essentially the same
  as a whole-update (replace) of an object, and it is idempotent.
  PUT should be used whether adding a new item now.
* Similarly, the "update" method that used to be POST, is now removed
  and replaced by the PUT method mentioned above.
* POST inventory/insert has been replaced by an overloaded PUT method
  at the same location as the above mentioned one, but it expects URI params
  instead of a JSON body.
* Changed POST /inventory/insert {json body } to be:  PUT /inventory {json body}.
  Renamed, reworked postItemParams() into putItemParams().
* GET inventory/search?blah=blah has been changed to inventory/item?blah=blah to
  better indicate the resource rather than function.

Note:  When doing searches, there are two ways to do regex in mongo, one of which will
not work (option i is for case-insensitivity):
GOOD: db.collection.find( { description: { $regex: '^.*laptop', $options: 'i' } } );
BAD:  db.collection.find( { description: /^.*laptop/i } );

This is because we have to URL-encode the JSON data into the GET request, and
if the "value" part of a key-value object is not a standard JSON thing (which the
regex is not), then the GSON parser will error out.  So use the first example so
the JSON will make it through the parser.
reordered functions
reordered functions, one more time
* Fixed searching with JSON document that includes an "_id":{$oid:555555555} field.
* Full-item searching works.  Had to work around a Gson limitation where the
  "_id" field is not directly parsable by the Gson object.
Added test testObjectIdToString.  Started testUpdateOneRecordSucceeds.
factored out convertJsonQueryToDBObject() from getItemFromJson().
Update works.
Got test testUpdateOneRecordSucceeds() working.
rearranged assert params.
added testUpdateItemWorksWithFullItemQuery, fixed update to remove inheriteditems from query.
added test: testUpdateItemDoesNotAddInheritedAttributes
added test: testUpdateMultiFails_ForNow.  Now updates without an id field will fail with 400 status.
updated api doc
Merge branch 'master' of https://github.com/dgowpers/glowing-meme

Conflicts:
	stuffsystem/web/src/main/java/com/stuffsystem/rest/InventoryRESTService.java

Restored InventoryRESTService.java to my version.  Will attempt to restore any conflicts later.