Add/update/delete permission targets.

:construction: 

WIP for supporting permission targets.

- [ ] tests

cc @opscode/release-engineers 
Why do we want to flatten this hash? Shouldn't we preserve the original structure (no matter how nested)?