Removed the need for users to manually specify the current project name.

Eventhough we had an implicit project name supplier, we still ask users to supply a project name for every command. This made operations that are simple require parameters, and was incongruent with existing GCE tools, all of which allow you to specify a current project.

Now, simple usage is very clean and easy to understand.

Ex.
```java
api.instances().create(NewInstance.create("foo", machineType, network, sourceImage));
// or
api.instancesInZone("us-central1-f").list();
```

While implementing this, I also found a way to remove looking up the project name via the api. As an alternative similar to keystone tenant. You can simply supply a property when creating the context, saying your project name. For example, ours is `jclouds-dev`, so I'd set it like below.
```java
overrides.setProperty("jclouds.google-compute-engine.project-name", "jclouds-dev");
```

Finally, I noticed our test setup was rather screwed up, as there are several places we have to remember to add Bearer token support or similar. That's now fixed.

Change descriptions:
      * Removed the need for users to manually specify the current project name everywhere.
      * Introduced jclouds.google-compute-engine.project-name property used to adjust the project commands affect.
      * Flattened quasi-generated pagination classes into package-private members of their callers.
      * Adjusted test configuration to allow bearer token properly.
@ccustine we used to set project name here, which was only used in compute api. Users would have to remember and pass the project name manually.