stamps implemented for envelopes + tests

cleanup array_merge and scalar check
Intial Batch storage

Change push to assign to better clarify intent

Add support for Batch in producer

test hhvm on travis

Move Batch and Message around in Producer in order to have a more correct exception message if it is given a weird value

Middlewares

add batch stamp to envelope in Batch

add testcase for envelope stamp when created in batch

dont install redis on hhvm

Make properties private as the class is final

Abuse the Message interface by letting Batch implement it. Return to the original produce typehint

Introduce a new Status ValueObject

Add description to storage

Add test for register

Convert into Subscriber