Pass metadata array for ObjectManager listeners

Updates ObjectManager put and remove methods to accept an
array of metadata that will be passed on to all objects
listening for events.

This is being done to eliminate situations where we attempt to
read our own writes from the database.  This often happens
because a listener needs some extra data which isn't directly
a part of the data model like the related workflow.

This patch does not utilize the data yet, just a refactor to
start passing the data arround.

Change-Id: I8148c09c507bd86f3cfbe618f97601997c2bd746
Merge "Pass metadata array for ObjectManager listeners"