Change to support additional ajax options

The default ajax implementation with all the additional enhancements is great.
But users are limited to the options exposed by the ajax helper.
If you would like to pass in additional ajax options such as content type(#724), setting ajax global option to false (or) any other options, it is not supported.
This change makes an attempt to support additional ajax options.
If this approach works, could this be integrated with the master branch ?