Allow options to be passed along with IronMQ messages/tasks - this time with tests :)

EDIT: This was lacking proper unit tests - sorry about that! I have now added them.

IronMQ, as well as its PHP library which Laravel uses, allows options to be set for individual messages, such as delay, timeout and expiration (see http://dev.iron.io/mq/reference/environment/).

While trying to preserve the interface of QueueInterface, specifically the order of the parameters, I added support for this. I simply added an extra optional parameter to QueueInterface::push(), and in IronQueue::push() added this parameter to $this->iron->postMessage().