Fixing bug on calling CRUDCollection and other improvements.

Fixes the bug when calling res.collection(items, listOptions) instead of
res.collection(items, listOptions.key)

Fixes a bug (link not generated) when the value of the key given is a falsy value

Incorporates the suggestion by Kieren on adding another option to
indicate if we want to use the key to return a keyed object. (Added
test).