Started makefile rework for link-time-subst

The intention is to break dependencies for unit tests
 via link-time substitution. All product code shall
be linked into a lib. Then each unit test suite shall
be linked separately, primarily towards test-suite
specific mock implementations, secondarily towards
the library of product code.
Updated .gitignore

"unit_tests" -> "unit_test"
Added foo module for makefile development

Added dummy "foo" module for evolving new makefile
composition
Simplified som directory recipies
Added dependency file generation

Added "foo.mk" and "foo.hh" to be able to verify
that dep file generation works
Removed some redundancy

Removed some redundancy in the build output directory rule
Minor tidy-up of makefile
Debug variant now links toward prod lib

Debug variant of "HelloRaspberry" now links towards
the new product library. "HelloRaspberry" has been
reduced though, will be restored step-by-step
Release variant now links toward prod lib

Release variant of "HelloRaspberry" now links towards
the new product library.
Restored debug prints
Removed "src/foo" because it's not needed

"src/foo" was introduced in order to try archiving
object files into a lib and then linking towards that lib.
This has succeeded and "src/foo" is therefore not needed
anymore
Restored LED and motor modules
Added compiler warnings; "-Wall"
Unit tests are now separately linked

Rules for each test suites are now defined by each
module's makefile

* Excluded "HelloRaspberry.o" from product library
otherwise 'HelloRaspberry' will be the 'main'
method also for the test suites

* Renamed 'PROD_LIB_DIR' to 'LIB_DIR' because also
GTest lib will go into this folder for unit test
builds

* Cleaned up "gtest.mk" somewhat

* Introduced make variable
'GENERAL_TARGET_DEPENDENCIES' to collect all
dependencies that are common to all build variants

* Added 'ALL_UNIT_TESTS_COMMAND' which holds the
shell command for executing all unit test suites

* Added newlines at the end of most target recipes
Introduced 'TEST_SUITE_SUFFIX' for clarity

'TEST_SUITE_SUFFIX' is a name suffix that must be
used for all test suites or the
'ALL_UNIT_TESTS_COMMAND' will not be assembled
correctly