storage: Initiate storage client with a project ID.

Project IDs will be required during bucket creation. Additionally,
in order to keep the consistency among other service clients (such
as pubsub), we should require user to set their project ID during
client initialization.
Add new ACL functions.
These new functions operate on Buckets, Default Objects, and individual Objects.
Also, make RoleOwner and RoleReader type ACLRole instead of ideal constants.