Make removeOne method consume ScriptableDocument.

Currently, removeOne method only consumes a query. This patch makes the method
also consume a document.
Add count command to DB API.

This API can be used as find or findOne, but it returns the number of the
matching document.  It uses count command internally, so it's more efficient
than using find and getting the length of the result.

This patch also adds an example of using count command.
Add limit option to ScriptableCollection.find method.

Currently, ScriptableCollection.find method returns all matching results.
This patch makes the method limit the number of the results.

For example,
`collection.find(query)' will return all results, but
`collection.find(query, 3)' will return only the first three results.

Actually limit doesn't limit the number of documents fetched from the network.
It just reduces the conversion overhead.
Add orderBy method to DB API.

This patch orderBy method to Collection. This method return new
collection that returns the sorted result.

For example, `collection.orderBy('fieldName', db.ASC)' will be new
collection that returns the result with sorted by fieldName in ascending
order.

If you want the result sorted by `field1' in ascending and `field2' in
descending, you have to call orderBy twice like
`collection.orderBy('field2', db.DESC).orderBy('field1', db.ASC)'.

If you call orderBy tiwce with the same field, the last one will be
applied. In other words,
`collection.orderBy('fieldName', db.DESC).orderBy('fieldName', db.ASC)'
will retrun the result in ascending.