CHEF-3714: Chef::Util::FileEdit#unwritten_changes?

https://tickets.opscode.com/browse/CHEF-3714
https://tickets.opscode.com/browse/CHEF-4173

#754, #804, #878, #959, #963, #1129

I moved all the content/line editing into a new class, `Chef::Util::Editor`, leaving `Chef::Util::FileEdit` to track the state of the file. I decided not to change `file_edit_spec.rb` out of fear (e.g., `write_file` has no specifications.)

Hopefully, this is enough to let someone more familiar with the expected API of `FileEdit` to clean up its specs.