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 : it is a bit confusing to see CreateProvider and the variable named as provider, I had to think what provider we are talking about :)... suggest a better name for CreateProvider method.