Allow receipts to be objects

Currently the returned receipt must be scalar as it is used as a key in an array. For example pheanstalk returns an object which could be used as a receipt, so that the object does not have to be reinstantiated from the ID (which is saved as receipt).

Using an object store solves this problem. Also, it should have a better performance, as the previous implementation used array_search to look for the Envelope in the array.