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 :)
Yeah, it's kind of overloaded since there are 3 things going on here that essentially re-use the function.

I can move stuff out to be non-instance methods, but then it makes it harder to test, and isn't our pattern elsewhere in the lib. Let me know if you think of a better way.