[Fixes #739] Attribute Routing: Multiple routes per-action

1. Support multiple [Http*] attributes on an action.
2. Support multiple [Route] attributes on a controller.
3. Detect attribute routed actions during action discovery
   and return one action per [Http*] found on the method.
4. Build one action descriptor per [Route]+[Http*] combination
   in an action.
4. Disallow the use of [AcceptVerbs] and other IActionHttpMethodProvider
   attributes in attribute routed actions.
5. Disallow mixing attribute routed and non attribute routed actions on
   the same method.
Not easy to read, here we do not check if the ```controllerRouteTemplates``` had a null template because we have already filtered it out in ```GetControllerRouteTemplates``` method. Also I don't see where the controllerRouteTemplates are being used except for seeing if they have any value.
Instead of this round about way, I would suggest: 
Have a method which checks if there are any controller level ```IRouteTemplateProvider``` attributes with non empty present and return a bool. Use that in rest of your calculations.