API, pt II: Pagination

This adds pagination to the machines resource. Included in this PR is also a bonus commit that adds some testing of the serialization code.
Evidently I'm a little slow on this whole pagination thing. How are we going to expose this later if the Limit is encoded into an opaque PageToken? 

Am I correct in saying that in the current implementation there's no way for a user to get an atomic snapshot of all machines? (And e.g. given a scenario where the set of machines is rapidly churning, it could be impossible for a requester to discover all of them even with repeated requests.)