File Specificity Overhaul

I'd prefer to get rid of all implicit file specificity over time. Platform family definitely seems more useful than the current situation, but I think it's handled pretty well by the second part of this proposal, where you can set the search paths yourself. I could see an argument for adding some functions to map a file base name to an array of lookup paths, but on the other hand I'm not sure what that gets you in the end:

```ruby
template "/tmp/foo.txt" do
  # is this that much better
  source search_by_platform_family("foo.txt.erb")
  # than this?
  source "#{node["platform_family"]}/foo.txt.erb"
end
```

It doesn't seem like that much less typing to me, maybe it's slightly less if you want to fall through to a default template source, but you lose some clarity (i.e., the search path is defined by the implementation of the `search_by_platform_family` method which you have to know or read about), too.