make: refactor make system (parallelism, deduplication)

Almost everything was build sequentially in RIOT, because we employed
explicit for-loops to build directories (DIRS). This PR makes our make
system use normal dependencies to build directories.

All our compiling rules were duplicated, once for the application, once
for modules. This PR makes the application a normal module, removing
this duplication.
make: make DIRS usable for applications
make: create dependencies as side effect
make: use abspath for better error messages
Merge pull request #1326 from Kijewski/make-parallel-dirs

 make: refactor make system (parallelism, deduplication)
x86: shutdown on LPM_POWERDOWN
drivers: added set_absolute to timer interface
Merge pull request #1289 from haukepetersen/fix_drivers_periph_timer

drivers: added set_absolute to timer interface
make: OSX: don't fail for empty .a archives

Fixes issue #1333.
tests/Travis: run unittests on x86, too
Merge pull request #1252 from Kijewski/travis-x86

tests/Travis: run unittests on qemu-i386, too
Merge pull request #1334 from Kijewski/issue-1333

make: OSX: don't fail for empty .a archives
Changed RIOT/Makefile.include, Makefile.base, Makefile.cflags, and native/Makefile.include to compile C and C++ files.
added riot_and_cpp example
added sudo apt-get install g++-multilib to travis.yml
Merge pull request #981 from vanhieubk/nhat_mixCompiler

Another way to mix c and cpp in user app with RIOT [native]
Initial commit of Arduino Mega2560
strip functions in atmega2560/periph and atmega_common/thread_arch.c down to prototypes

Add custom errno.h since avr-libc doesn't include one
rename board_init to main, main to o_main (inside hello-world/main.c). Fix
Makefile.include:

UART works within RIOT codebase, :)
Develop: fix invocation of avrdude