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 :)
Actually looking more at this code, you've actually taught me something! So thank you! The `.bind` stuff to create bounded functions was a little mysterious to me and now it makes more sense. :) I still want to play devil's advocate and hope there's a "cleaner" way. For one, the method documentation must leave out the path param now because technically the method is never meant to be used in an "unbound" state.