Allow passing a single object to Model.create.

Addresses #159 

Enables:
```js
Model.create({name: 'jane'}, function(err, item) {
  // item is not an array, but a single object
});
Model.create([{name: 'jane'}], function(err, items) {
  // items is an array
});
```

It seems that you can pass the same parameters to `Model.create` in many different ways.
Eg:

```js
Model.create([{name: 'jane'}, {name: 'john'}], function (err, items) { ... } );
Model.create([{name: 'jane'}], [{name: 'john'}], function (err, items) { ... } );
Model.create([{name: 'jane'}], function (err, items) { ... }, [{name: 'john'}] );
Model.create([{name: 'jane'}], function (err, items) { ... }, {someOption: false}, [{name: 'john'}] );
```
are all equivalent.

This PR limits this somewhat, as the first argument which is an object but not an array is assumed to be a single item to be created.

I think this is resonable.
I also think the way parameters are accepted is a little *too* flexible. Requiring that the first parameter is the item(s) to be created, and last parameter is the callback (with an optional middle options param) would make the code a bit easier to read.