Raise an error when loading recipe from cookbooks not in dependency graph [CHEF-4367]

Fixes CHEF-4367.

When attempting to load a recipe belonging to a cookbook that is not in
the run_list or any dependencies of cookbooks in the run_list, chef
will now produce an error like this:

    Chef::Exceptions::MissingCookbookDependency
    -------------------------------------------
    Recipe `ancient::aliens` is not in the run_list, and cookbook 'ancient'
    is not a dependency of any cookbook in the run_list.  To load thisrecipe,
    first add a dependency on cookbook 'ancient' in the cookbook you're
    including it from in that cookbook's metadata.

This error will occur when chef-solo users use `include_recipe` without
specifying the dependency in metadata; prior to this patch, chef would
typically fail reading an undefined attribute, which commonly would
result in a NoMethodError for nil.