Extract policy building concerns from Chef::Client

Chef::Client has too many responsibilities that are difficult to test in
isolation. Refactor them out to an implementation class. This is a
prerequsite for providing alternative policy building strategies.
Add license header to policy_builder file
Add tests for public api to PolicyBuilder