Manual merge of #327

This is a manual merge of #327.  Thanks @krutsko for the contribution.  The commits by @krutsko added unit tests demonstrating a number of failures of execution hooks.

1) Unlike 1.3.x, 1.4 was calling ```onRunStart``` before ```onThreadStart```.  This is now switched back to ```onThreadStart``` before ```onRunStart```
2) Some paths called the ```onComplete``` hook twice
3) 1.4 is calling ```onThreadComplete``` earlier, as the amount of logic executed on the Hystrix-isolated thread is less is 1.4.  I'm opening issue #377 to check this out.
4) HystrixBadRequestException was not calling the ```onError``` execution hook.