Allow file resources to manage files via symlink

Fixes CHEF-4312 http://tickets.opscode.com/browse/CHEF-4312

Adds resource attribute `manage_symlink_source` to file resource and
descendents. When true, file resources will manage the source file
when a symlink exists at the destination path. When nil (default), the
source file is managed, but a warning is emitted. When false, symlinks
are not followed. In Chef 12, the default should be changed to false.
Add File.realpath backport for ruby 1.8

- Related to fix for CHEF-4312
Fix spec file loading annoyances

- Don't load all knife subcommands. Fixes error running tests on 1.8
  when you have 1.9-only plugins installed.
- Adjust spec file loading to use paths relative to spec/
Update tests to expect normalized filenames

- Relates to CHEF-4312
- Updates unit tests to expect "normalized" filenames where method arguments
  are now using File.realpath(path) instead of path; on *NIX these are the
  same, on Windows, \ gets converted to /.