shell: remove useless copying of input string
Add quadword math lib

GCC implicitly calls functions like __adddi3 to handle arithmetics on
long long.

Copied from http://ftp3.usa.openbsd.org/pub/OpenBSD/src/lib/libc/quad/
which is curtesy of the OpenBSD project (3 clause BSD license).
Add compile time checks to quad.h
Adapt quad lib to RIOT coding conventions
Do not zero out sched_threads needlessly

The function sched_init() zeroes out sched_threads needlessly. All
static variables can be assumed to be initialized with zero, anyways.
The C standard mandates it, and all at other places in the code it is
assumed.
Add USEPKG variable for Makefiles

Currently pkg/USING says one should use
`EXTERNAL+=$(RIOTBASE)/pkg/<pkg_name>` to enable PKG modules.
Using this line the PKG will be compiled but not linked.

This change adds a USEPKG variable to be used like
`USEPKG += <pkg_name>`, which looks less clumsy and gets the PKG linked
in the binary.
Use include path convention for PKGs

Packages have to define a Makefile.include target in pkg/%/Makefile.
pkg/%/Makefile.include will be loaded after all other dependencies.
Apply @authmillenon's patch
core: msg: don't wake up sender after receive if it's REPLY_BLOCKED

solves issue #100

If the sender is reply-blocked, waking it up after its message has been
delivered is wrong. It needs to stay reply-blocked until the reply has
been delivered.
core: msg: add some debug statements
core: msg: yield after queueing of a message if REPLY_BLOCKED

When setting the running task reply_blocked, it is implicitly removed
from the runqueue. But if queueing of a msg is actually successful, the
thread exits msg_send without yielding, continuing to run even if it's
not supposed to.

Nice example of why multiple function exit points lead to weird
errors...
Do not mandate input language

An application might want to use C11 features. The user would assume
that setting `CFLAGS=-std=gnu11` in the Makefile would work. It does not
since the board's Makefile.include shadows the `-std` flag.

This patch removes the `-std=gnu99` from the various Makefile.includes,
and sets the flag in the common Makefile.include of RIOT instead.
If an `-std` flag was provided by an earlier Makefile (the application,
the board, or the CPU [whilst only the former one should]), then no
additional flag is set. It is first tested if the supplied compiler
understands `-std=gnu99`, then `-std=c99`.
Use `filter` instead of `findstring`

See #672
Eliminate findstring in more places
Split `} else {` lines per #693
Merge pull request #692 from Kijewski/std-flag

Do not mandate input language
Merge pull request #576 from Kijewski/usepkg

Add USEPKG variable for Makefiles
https://github.com/Kijewski/RIOT/commit/102dc453828012985f82915ad826be069f444e61#commitcomment-5378590
replace all endless for loops by while
Merge pull request #678 from mehlis/shell-no-copy

shell: remove useless copying of input string