SERVER-10566 WorkingSet cleanup and optimization

Changes:

* Documented some contracts
* Marked noncopyable classes as such
* Changed WorkingSetID to size_t from long
* Inlined WorkingSet::get since it is simple and very hot
* WorkingSetMembers are now pooled and reused
* Stopped using unordered_(map|set)
** _data became a vector with freelist
** _flagged became a bool on each member of _data
** _computed became an embedded array
SERVER-11781 Don't crash when converting deeply nested or cyclical JS objects to BSON