Fix dealing with Unicode paths in v2 API

This adds a new API revision, v2, which attempts to deal with the many problems we've had dealing with Unicode paths.

Paths are basically bytestrings to the OS, and we've caused ourselves a lot of grief by trying to treat them as sets of characters instead of bytes. v2 of the API sidesteps this by treating all paths as sets of arbitrary bytes, and communicates them to/from outside services in base64-encoded strings.

The tastypie resources are now separated out into base classes and versioned classes, which inherit from the base resources.

This will get squashed down a bit on merge.