Get rid of null check of responseHandler, also add proper synchronizatio...

1. force method contract in ctor to avoid null check;
2. add proper synchronization;
3. make the class real internal by removing public keyword; (revert this)
@zxw1962 well go for it, say you're ready and I'm gonna merge it :-) Thanks