Allow client-side dynamic backend definition

- Now it's possible to define which backend a collection will use at instantiation time,
 just by passing an `backend` member to the options parameter when creating the collection.
- The `backend` member will be evaluated using `underscore.result()`, so a function can be
  used instead of a static value, for even more dynamicness.