Refactor completion handling into `HootRequest`, and call that completion handling in `bindListener()` when the request is complete. This allows standardization of completion handling throughout all mechanisms of having the listener called when done. Otherwise, the listener's `onRequestCompleted()` callback is never called in the `bindListener()` case after being unbound when the request completes.
Unbind the listener in `handleCompletion()` so we remove the reference.
Merge pull request #20 from bjdupuis/master

Refactor completion handling a bit.