RFC 17 implementation

This branch implements [Chef RFC 17](https://github.com/opscode/chef-rfc/blob/master/rfc017-file-specificity.md). I've only run the unit tests as many of the others seem to take a very long time and some break due to TTY issues:

```
Finished in 2 minutes 14.7 seconds
6864 examples, 0 failures, 30 pending
```
Okay I can see the logic that mutating the arguments of the new_resource.source may not be ideal, but it could be the responsibility of the provider to inflate strings into arrays before calling this.

And yeah, the open question is if that'll break other clients of this API.

And yes, would need a new mixin.