storage: acls

## Do not merge

- [ ] Unit tests

---

RE: #285 

Docs:
- http://stephenplusplus.github.io/gcloud-node/#/docs/master/storage/bucket
- http://stephenplusplus.github.io/gcloud-node/#/docs/master/storage/file

---

##### bucket.acl.add(scope, role, callback)
##### bucket.acl.delete(scope, callback)
##### bucket.acl.get([user,] callback)
##### bucket.acl.update(user, scope, callback)

These methods are all available with `bucket.acl.default` as well, to act on the default object ACLs.

It didn't work as I originally thought, such as that I can update many roles at once, or add many roles to one scope. Instead of aliasing scopes like "this is an email", "this is a group", or the ones like "allAuthenticated" and "allUsers", we could just borrow the terms and schemes already in place via the API (e.g. `"user-email@email.com"`). So this is an almost transparent API passthrough, with minor massaging to the input.

If you guys like other names better than add/delete/get/update, I'm happy to update :)
Shouldn't need to do this. When you call `new Acl(this);` from Bucket constructor, just pass in the path. Then set the path here using `this.path = path;` and append to every request. Then you don't need to have assign your `get_` to `get` etc.