[MemorySpool] Cloning messages to the queue

This PR is a merge of #278 and #518. With help from @xdecock we got the cloning to work. 

I need some advice about the failing test. I suspect this is a false positive. Am I correct when saying that properties of the message does not need to be cloned? If not, the test is valid and we (or I ?) need to do some more changes to this PR. 
I think we can just remove the `generateId()` call. The message itself has a new message anyway as done in the transport classes. That should solve the problem.

@Nyholm What do you think of this?