HalJS.fetch as in interace instead of method

HalJS.fetch is now an interface that must be implemented in order for HalJS to work.

Allows caching of data through data stores and interchangibility of ajax libraries.