add file support

Second attempt at this pull request.

The file API is not so great:

- It doesn't support listing files
- It munges the filename after uploading

This makes our File class a bit weird. I appreciate any feedback on its design.

The idea is that it subclasses both `ParseType` and `ParseBase`, so we can use it to post to the API, *and* treat it like an resource relationship, even though it's not a first-class resource.

Also note that it loads the whole file into memory before uploading - this could probably be optimized, assuming urllib supports it.