TOOLS: Improve behavior of Filename for directories

When creating a Filename with a path corresponding to a directory
but without a '/' or '\\' at the end the last part is treated as the file
name and not a directory and setFullName() does not behaves as
expected. Now when setting the path in Filename if it corresponds to
an existing directory it makes sure it ends with a '/' or '\\'.
TOOLS: Improve handling of input files and directories

There are three main changes:
Properly handle directory detection.
Improve inspectInput() when there is more than one input to the tool.
Rewrote input arguments parsing to match them with the expected inputs.
TOOLS: Fix compress_sword help string

The tool is expecting an input file and not an input directory.
TOOLS: Rewrite extract_cge to merge it into scummvm-tools

This involved splitting the extract and pack tool into two separate
tools, rewriting them to use the Common::File (and a few other things
from Common) instead of FILE* and changing the way in handles
input and output files.
TOOLS: Add CGE extract/pack tools in VS build files
BUILD: Remove extract_cge from mingw build
TOOLS: Fix expected input format for PackCge
TOOLS: Simplify handling of input files in ExtractCge
TOOLS: Simplify the ExtractCge help string
TOOLS: Clean compress_tucker code a bit

This adds a missing end of lines at the end of a warning, remove
duplicate consecutive '/' in path and correctly set the input file flag
to false.
TOOLS: Add extract_cge to .gitignore patterns.
TOOLS: Revert "Add extract_cge to .gitignore patterns."

The tool extract_cge no longer exists as a stand-alone program.
This reverts commit a93fc49a6238bac9c943a4b4b7c7509009ecb9ad.
TOOLS: Make Common::File and isDirectory() case insensitive

This fixes some tool adding hardcoded upper case directories (e.g.
AUDIO/) to the input path to look for files when run on case
sensitive systems.
TOOLS: Add EOL in the Tool print, warning and error function

This is consistent with the Common warning and error functions from
both ScummVM and the tools. Only the functions from the class Tool
didn't add EOL automatically. Unsurprisingly the End Of Line was
then missing in many places were these functions were called.
TOOLS: Use Filename::exists() instead of fopen() in compress_sword1

The tool is building path by appending uppercase SPEECH or MUSIC
to the input directory and then using fopen() when looking for the
input files. Now it uses Common::Filename::exists() which should
work better on case sensitive systems.
NEWS: Set date for Tools 1.4.0 release
NEWS: Mention several fixes relative to input files in the tools
TOOLS: Improve input file check in the GUI Tools

It now uses the same check that as been recently added when parsing
the input files in the CLI Tools. This is the first part of a fix for tools
expecting multiple inputs, as depending on the first file selected by
the user it could crash the application when trying to run the tool.
TOOLS: Fix input files check when running the tool more than once

Also add a check on the number of inputs. This ensures the user has selected a file for each required input in the GUI.
TOOLS: Improve tools detection from input file in GUI

The tools that expected a directory were never detected because the
user could only select a file and not a directory. Now he still needs
to select a file but the directory that contains it is also checked and
the file name is stripped if needed to run the tool.

An alternative would have been to let the user select a directory, but
that would have meant the user needed to know if the tool expect a file
or a directory as input. Also because there is no wxPicker to select either
a file or a directory this would have needed additional radio buttons to
show either a file picker or a directory picker. All in all always asking for
a file here seemed more user friendly.