tests/run_test_suite.sh: Add working infrastructure for end-to-end tests

The only existing test we've got at the moment is a unit test that can be
run stand-alone as it doesn't depend on any external source. However,
because this branch is going to change some code so that it uses a
configuration file in two different ways, we'll need to start using an
end-to-end test to prove that our changes actually work.

Now, these tests will be comprised by bash script files with a very
specific structure:

1) Every file that contains end-to-end tests must have a name in the form
   "test-*.sh"

2) The tests in these files will be defined as functions with names in the
   form "test_*"

Therefore, if helper functions that don't meet those requirements are
declared, they won't be considered as tests.
tests/end_to_end: First test for the configuration

This first end-to-end test focuses in the functionality that is going to be
introduced in this branch: the use of a environment variable that will
overwrite, "on-the-fly", the current `settings.conf` file in the project's
root directory.
tests/run_test_suite.sh: Add information on test failures

The test added in the previous commit is failing at the moment because I
still haven't implemented the necessary modifications to make it pass.
However, I've found it's quite hard to see what's failing, so this commit
adds some verbosity *only* for the test failures.
settings.get_config: Read the settings from $MEGUP_CONFIG_FILE first

If this environment variable is set, `get_config()` must use it instead of
the config file in the project's root directory.
README.md: Update readme file with the latest changes

The section regarding configuration has been updated with the latest
changes. No one should need to dig into the code just know this
functionality exists.
settings.conf: Go back to using a single configuration file

Now, with all the changes in the previous commits, there's no need to keep
these two separate files.
Merge branch 'overwrite-settings'