Fix #1287 - Port WebAPI parameter binding behavior

This change modifies the default parameter binding behavior for an
ApiController to use the WebAPI rules.

'simple types' default to use route data or query string
'complex types' default to use the body (formatters)

Adds ModelBindingAttribute to enabled model binding
nit: I would further simplify the where clause with a helper method for the predicate. It's hard to read the clause with all the method calls and logic operators. At least I would put validationInfo... || validationInfo into it's own helper method.