New convenience function File::Utils::output_file_check()

This function simply throws an exception if the command does not have file overwrite permission from the user, and a file already exists at the provided path.
New class File::OFStream

This class is intended to be used instead of the std::ofstream class.
Benefits are that it checks for a pre-existing file first if necessary, and receives a std::string rather than a const char*.
App::Argument: Differentiate between input and output files

This does not yet have any effect, but will assist later...
File::OFStream: Check IOS flags\n\nDon't want to throw an exception on opening an output file stream if said file is being explicitly opened in a mode that expects pre-existing file data.
All apps: check input / output files before run()

Additional flags in App::Argument, IsInputFile and IsOutputFile.
This allows App::parse() to check for the presence of all command input files (including provided optional ones), and presence of any command output files (including specified optional ones) if -force is not set, independently of the particular application being run.
File::OFStream: Check status of file after open

Yet to see an application where an output file open is permitted to fail; can modify if such an application pops up.
File::OFStream: Move function code to .cpp file

Was getting weird compiler errors that were completely non-specific...
File::OFStream: Use throughout code

This also fixes some areas where the success of output file stream creation was not checked.
Minor cleanup of File::OFStream

Removed redundant const char* versions of functions, since the compiler would
type-cast a const char* to a std::string if needed anyway.
Input/output file checking: more explicit error message for option arguments
App::parse(): Only check for presence of standard files (NOT images)

It cannot be guaranteed that an image string will correspond to an absolute disk path, so a check for the presence of files prior to image creation / opening is not possible.
Merge pull request #92 from jdtournier/extend_force

All commands will now check for the presence of input files (not images, only other file types) before execution.
-force option now also applies to non-image file types.
If -force is not set, commands will also check for pre-existing files at file output paths (again, not images, only other file types), and terminate early rather than commencing execution and then terminating at the output stage.
Closes #82.