[BUILD] Add Compatibility through multiple toolchains

This long-term pull request will add provisions to slightly adapt the entire build process for the specified toolchain, as each toolchain has some little differences.

The user will be able to select toolchain that he uses by calling
```
make TOOLCHAIN=gcc-codesourcery
```
If the user doesn't specify the toolchain, the gcc-launchpad will be used by default.

The support will be done by having this in the makefile:

```
... define variables CFLAGS, CPPFLAGS and so on ...
include $(OPENCM3_DIR)/mk/toolchains/$(TOOLCHAIN)-config.mk
... include other config stuff ...
... define basic build rules  ...
include $(OPENCM3_DIR)/mk/toolchains/$(TOOLCHAIN)-rules.mk
... include other rules stuff ...
```