Fix tests, refactor some small pieces
Remove `caller` and `caller_permission` arguments to `update`
API improvements:

- `update` now takes a list of field to update in a single statement
- remove `caller` param for `grant` and `revoke` as well
Actually bypass further permission checks on `update_privileges`