Make ResourceVersion a string internally instead of uint64

Allows us to define different watch versioning regimes in the future
as well as to encode information with the resource version.

This changes /watch/resources?resourceVersion=3 to start the watch at
4 instead of 3, which means clients can read a resource version and
then send it back to the server. Clients should no longer do math on
resource versions.
Change test cases to verify the client sends the received resourceVersion
Update ObjectReference to use ResourceVersion string everywhere

Breaks backwards compat for anyone using older versions
Merge pull request #1643 from smarterclayton/make_resource_version_a_string

Make ResourceVersion internally a string instead of uint64