Bugfix for providing item ID's to CRUDCollection list collection

This patch allows listOptions.key to be provided to CRUDCollections list() function without it generating buggy output. New option listOptions.listAsKeyedObject enables listOptions.key to be optionally passed to HyperJsonCollection collection() function, switching output from an array of items to an object with items as property values and item[listOptions.key] property names. Autolink works as normal with the optional listOptions.key property.