Added a condition to make sure `require` is defined before using it

This is because sometimes exports is defined but that doesnt
necessarily mean that require is also defined; Lumbar for example, also
uses exports, but does not use require
Custom cache key function per model/collection

I added the option to configure a custom cache key function for each
model/collection, that would ovveride the default cache key function.
Added a last sync attribute to track server fetch

I added a `lastSync` attribute (and a getter) to keep track of when was
the last server sync.
fixed lint errors on specs
fixed lint errors
Merge pull request #101 from liorch88/verify-require-defined

Added a condition to make sure `require` is defined before using it
Merge branch 'custom-key-function' of https://github.com/liorch88/backbone-fetch-cache into liorch88-custom-key-function

Conflicts:
	backbone.fetch-cache.min.js
Elevate var to top of getCacheKey()

 On branch liorch88-custom-key-function
	modified:   backbone.fetch-cache.js
Merge pull request #104 from madglory/liorch88-custom-key-function

Liorch88 custom key function
Merge branch 'add-lastsync-attr' of https://github.com/liorch88/backbone-fetch-cache into liorch88-add-lastsync-attr

Conflicts:
	backbone.fetch-cache.min.js