Copied ActionMethodDispatcher from ASP.NET MVC

- Improves performance of Hub method invocations
- Improves error reporting by not throwing TargetInvocationExceptions

#1486