Rewrite host/role resolution to respect user role settings. The new rules are:
 - If the user specifies roles and hosts, enforce that they match
 - If the user specifies roles but not hosts, filter out hosts that don't match
 - If the user does not specify hosts, derive them from the environment
 - If the user does not specify roles, derive them from the intersection of all hosts' roles
Create a new resolving module that meets CI-33 requirements.
Remove now unused model functions.
Improve error messaging.
Document setup.py workaround re: nose mulitprocessing
Fix bug introduced by better error handling.
Better error handling of import error.
Change host and environment handling:

 - Environment must be defined.
 - Environment need not have any hosts, but this is a warning.
 - Hosts, if defined, must be in the environment.
Change get_hosts_for_enviromnent() error conditions to raise exceptions.
Merge branch 'feature/filterhostsbyrole' into develop