Improve project's Makefile

This commit add several improvements to the build system of the
project:
 - Add check for existence of .config and stop if it doesn't
 - Move gen-carveout build targets into a separate Makefile
 - Improve clean target, so now hopefully it really cleans the source
   tree
 - Further simplify makefile, by crating common rule for converting
   .elf to .bin
 - Add check for libopencm3 presense

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>