Added jsWhere, jsWhereOpt

Hi Jason,

Let me know if this implementation is helpful, or if you want to take an entirely different tack.

We treated the js $where as an optional string at the top-level of the query. Following the mongo syntax, we generate the clause after the top-level AndCondition in MongoHelpers.buildCondition.

Update: Using this approach, vs a generic "raw" clause interface, one can use phantom types to ensure that there is at most a single $where clause, etc. We didn't finish the phantom types yet, but wanted to get this pull request submitted so that you could review asap. [update 2: we did finish the phantom types, with a test that duplicate $where is prevented]

Regards,
-Marc