rename chef_object to chef_object_base
rename chef_cookbook to chef_cookbook_version
chef_wm_base: wire together chef_object behaviour
move type dispatch to chef_object module
call ejson_for_indexing from chef_object behaviour modules
change function signature of chef_db:update to match create
Refactor chef_object_db add_to_solr to use new chef_object behavior

This motivates the need for chef_object:is_indexed as a callback and
simplifies adding and deleting objects to solr via the indexing queue
such that there is a clear pattern of the object getting to define
whether it belongs in the index or not.
Refactor delete and delete_from_db in chef_object_db

Here's how we'd like this level of the code to work with chef_db for
object delete.
Use chef_db:delete/2 for cookbook_versions

cookbook_version objects are still handled specially internally, but
the external delete interface is now unified.
Use chef_db:create/3 for data bag items!
Add new wm helper list_objects_json to chef_wm_base

This helper uses chef_db:list to fetch object names and generate the
JSON mapping of name to URL in a way that can be reused for most
object types.

The helper behaves like a to_json/2 and you can use it by importing it
into a wm resource module via mixer and renaming it to_json.
Use list_objects_json in chef_wm_roles
Use list_objects_json in chef_wm_data
Use list_objects_json in chef_wm_environments
refactor: chef_db:fetch_* -> chef_db:fetch/2
update chef_db calls to replace OrgName with OrgId
whitespace / indentation fixes for chef_sked
fix dialyzer errors and compilation warnings
Use list_objects_json in chef_wm_clients
Fixed principals endpoint so it has access to org_id