Separating handler logic out of dispatch. 

Hi,
I have a minor change that moves the logic out to determine which handler (such as `.get(), `.post()`) into it's own separate method. 
The rational for this, is from a recent use case of `Viewsets` with a current project.
Often, depending on a difference in request object, such as the presence of a QUERY_PARAM (which can't to my knowledge be detected with current Router setup, please correct me if I'm mistaken) combined with the type of request action (e.g. retrieve, create, destroy, etc) it's really useful to point to custom methods for DRYness + testability.  

Currently we have to overwrite the entire dispatch, when we are just concerned with determining the handler. Instead, it would be nice overwrite just the handler logic! 

Let me know if the above makes sense. Happy to explain in more detail + welcome to feedback on this!