protocol: Create contextualized object entry messages

This helps the the client agent keep normal object entry (not due to a request) separate from the object entry caused by the OBJECT_GET_ZONES_OBJECTS message.
Implement new OBJECT_ENTER_INTEREST messages
test: modify tests to be in line with the new ENTER_INTEREST message
doc: Update reference.txt to include ENTER_INTEREST messages
test: Add client agent tests to specifically isolate each interest race condition
test: Add the proper expectNone's that I wanted
Switch to buffering generates for interests at the Client Agent level
docs: Update docs to reflect new interest behaviour
Fix longstanding comment typo
test: Update comment narrative
Use std namespace; improve naming to queue pending objects.
Reorganize "conclude_operation". Additional cleanup.

We don't always want to check if we have all the objects (example: timeout).
Additionally, this is causing the code double check almost everywhere.
Instead of trying to fetch our context out of the ENTER_INTEREST messages
we should keep track of it as part of the interest object.
Fix typo in DistributedObject that would be a bug in the future.
Merge pull request #289 from Astron/feature/contextual-object-entry

Contextual Object Entry