Added hooks for ajax integration

This PR doesn't add full ajax support but it adds extension hooks to make that happen. In the mean time, so that these features can be used safely in modules, I've separated the actual features into a couple modules. I felt the ajax module itself could be useful outside of the shop module so I think we should probably leave it separate. If you want to merge the shop-ajax module into shop core to keep from having two sets of pull requests in the future, I'm totally fine with that.

- https://github.com/markguinn/silverstripe-ajax
- https://github.com/markguinn/silverstripe-shop-ajax

This is a resubmission of #275 because that PR failed Travis/Scrutinizer (due to timeouts). Since that issue has been resolved I'm resubmitting this.