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.
I'm not convinced we ever need the user to control how many items per page they get. This is mainly about protecting the server from churning too long on a single request.

You are correct about the consistency problem. We are going to wait on etcd to provide the ability to reference a point-in-time snapshot before we provide a consistent view of the cluster across multiple paged requests.