Initial port from the appengine/datastore package, adapted to work with the v1 API

Major changes:
* A specific Client interface is used instead of appengine.Context
* The Multiple parameter in properties has been removed, this is now autodetected
* appengine specific types were moved into the datastore package (GeoPoint, BlobKey)
* Direct support for GeoPoints was removed as it's not supported by the v1 API, they're now serialized like every other struct

This is by no means completely tested yet, I need to run a lot of tests with the local devserver, and then with the live servers as well. It's however a good start, and I'd like to start gathering feedback on the API and the internals.
The interface is needed because a different struct is used when dealing with transactions, they both implement the Client interface however, which is why it is the interface that is exposed and not the struct directly.