Make ResourceVersion internally a string instead of uint64

In v1beta3 we decided to make the public, external ResourceVersion an opaque string so that we can eventually support other stores.  This change in preparation for v1beta3 rewires the internal version
to string, but leaves v1beta1/2 as uint64.

As a consequence of this change, clients must treat tokens as opaque and pass them back to the watch interface unchanged.  Therefore the watch interface must start watching at "resourceVersion" + 1. This
simplifies client behavior.

Extracted from #1600
Actually, can't because it has to round trip to JSON.