Use setters to make the MessageFactory and Sender injectable

also pass the retrylimit to the sender correctly when queueing
Added sami as a dev requirement to build API docs