Add orderBy option to find method.

This patch adds orderBy option to find method. Now you can use find
method like below:

collection.find(query, { orderBy : { field1: db.ASC, field2: db.DESC } })

It will return the sorted result (applying field1 ASC first and applying
field2 DESC in the set that has the same field1).

Parsing orderBy option seems too difficult to read because of backward
compatibility. As before, the second argument will be used as the limit number
if it is a number. And the second argument will be used as find option if it
is a JavaScript object. If you want to use orderBy and limit option at the
same time, use it as in the following:

collection.find(
    query,
    { orderBy: { feild1: db.ASC, field2: db.DESC }, limit: 10 }
)