Remote directory should pass specs

This depends on https://github.com/opscode/chef/pull/2130, however I felt it deserved its own code review
Its still way too complicated code.