Issue odata query escaping

These changes extend #338.

The first commit moves all percent-encoding logic out of the `ODataExpressionVisitor` class (instead the caller is expected to percent-encode the output themselves). 

Secondly, this commit adds `Uri.EscapeDataString` calls to code which builds OData strings in `MobileServiceTableQueryDescription` and `MobileServiceTable<T>`.

Perhaps all query string generation could be done via a factory like `MobileServiceUrlBuilder`, which automatically percent-encodes it's output.

The second commit updates all the unit tests I could locate to work with the encoded odata queries. To that end, I've added a new `AssertEx` helper method which simplifies validating the contents of url query strings.