Improved pagination in GCE

This pull request improves the pagination in GCE so it no longer sucks :D The main changes are:

* Removed all `listFirstPage` and similar methods from all APIs.
* All *list* methods have two forms: one to list all records that returns a `PagedIterable` (no params), and one to get a concrete page that accepts a `ListOptions` object.
* The `ListPage` object representing a single page has been refactored and improved and now has a convenience method `toPagedIterable`, that allows converting it to iterate over the pages after a filter operation or similar.
* Refactored all parsers to accommodate the new pagination logic.

In summary, every API only has the minimum and meaningful methods to get a list of records, and the pagination domain objects have been reworked to make it trivial to iterate over the pages.

I've also removed most of the warnings in the project.

/cc @ccustine @danbroudy Could you give a try to the branch and run the live tests? Your feedback on how the new pagination methods look like from a user point of view is appreciated too :)
/cc @adriancole Your feedback is also welcome :)

In fact, I first implemented it by returning a regular `IterableWithMarker` (the usual approach without references to the advancing function in the iterable itself), but I when I started modifying the live and expect tests I decided to change that, as I found it really ugly to keep the current tests with the new approach. All rely in the PagedIterable even when getting one page, and the code turned non-readable when having to manually get the advancing function.

Anyway, I'm OK to change to that approach, but I'll also refactor the majority of the tests. Most of the expect tests are a mess, and live tests that use lists have a lot of improvement, so I'll change them and refactor all expect tests to MWS ones.

It will take some more time, but we'll have a cleaner provider and the tests in the way we want them :)

Thanks for the feedback!