refactor :install and :install_if_modified
preserve original file mode on :install
add :owner and :group option to `install`.