Add messy import

requires uwescience/myria#483 (which has been deployed on the `production` demo but is not actually merged into `master`).

Essentially, read a simple .txt or .csv file, use `messytables` to infer the delimiters, types, header presence?, then upload it to Myria.

@7andrew7: some cool implementation tricks.

* we actually use a `MIME-Multipart-Encoding` operation to fit both the description of the object and the data itself in the same request.
* On the Java side, see the above referenced PR to see how this is handled at the server. I believe the server is processing the data in a streamed fashion rather than materializing it entirely as it did with the `POST(DatasetEncoding)`-based uploader.
* Unfortunately, the client is currently materializing the data entirely in memory rather than streaming it. I have a thread open with the maintainers of `requests-toolbelt` (https://github.com/sigmavirus24/requests-toolbelt/issues/26) about possibly making the client stream.

There are only three types produced: `LONG`, `DOUBLE`, and `STRING`. Defaulting to wide types hasn't hurt us in the past!

When data can be easily transmuted into binary, they are. So if the schema contains only `LONG` and `DOUBLE` the data are packed into binary with Python's `struct` module and then uploaded that way.

I believe `requests` should be automatically gzip-compressing the uploads.