Allow users to pass in Looper to be used instead of forcing synchronous mode

I recently noticed that a lot of my application was broken due to the 1.4.5 update and requiring a ```Looper``` to be prepared on the current ```Thread```. 

I have an event bus that I wrote that runs on a separate thread and dispatches messages accordingly.  While those messages are getting dispatched almost all of the handlers are executed on a ```Thread``` without a ```Looper```.  I would like to be able to make async requests and not block that thread.

There are a few different scenarios that people have run into the same problem.

I made these quick changes so that you can pass in a ```Looper``` and that will be used.  This will make the ```ResponderHandler``` handle it's ```Message```'s on that ```Looper```'s ```Thread```.  In my case these, handling those messages is so short lived it really has zero affect on the rest of my application.

It might need some more documenting so people are aware of how things are working and don't shoot themselves in the foot.