tests: let license checker check headers, too
make: don't call mkdir -p a lot
make: use $@ and $<
make: call ranlib
make: don't invoke wildcard repeatedly
make: easier to read object targets
sys: remove lib/hashtable.c

Quoting myself:

> The code of sys/lib/hashtable.c is very badly adapted for embedded
> systems. The used primes are huge, and the limit is entirely
> unrealistic. Why do we ship this file?

In #1564 we came to the conclusion that we don't need this code.

Closes #1564.
core: introduce KERNEL_PID_FIRST and KERNEL_PID_LAST
core: let valid PIDs start with 1
all over the place: use sched_active_pid

In many places we needlessly use `sched_active_thread->pid` whilst we
already have `sched_active_pid` with the same value, and one less
indirection.

`thread_getpid()` is made `static inline` so that there is no penalty in
using this function over accessing `sched_active_pid` directly.
core: SCHED_PRIO_LEVELS==16 for every board

Closes #1399.

> Using a different value for SCHED_PRIO_LEVELS for 16 and 32 bit
platforms hurts portability, one thing that we heavily advertise about
RIOT. if you want to write a portable application, then you have to
assume the lower value.

This PR defaults `SCHED_PRIO_LEVELS` to 16 for every board.
make: centralize wget/curl & unzip/7z feature test

With many open PRs that could benefit from loading SDKs when needed,
instead adding vast amounts of code to RIOTs master, this PR provides
the "functions" `$(DOWNLOAD_TO_STDOUT)`, `$(DOWNLOAD_TO_FILE)`, and
`$(UNZIP_HERE)`.

The first "function" takes one argument, the URL from where to download
the content. It is then piped to stdout. To be used e.g. with `tar xz`.

The second "function" taken two arguments, the destination file name,
and the source URL. If the previous invocation was interrupted, then the
download gets continued, if possible.

The last "function" takes one argument, the source ZIP file. The file
gets extracted into the cwd, so best use this "function" with
`cd $(SOME_WHERE) &&`.

The clumsy name `$(UNZIP_HERE)` is taken because the program "unzip"
takes the environment variable `UNZIP` as the source file, even if
another file name was given on the command line. The rationale for that
is that the hackers of "unzip" hate their users. Also they sacrifice
hamsters to Satan.
Merge pull request #1575 from Kijewski/use-sched_active_pid

all over the place: use sched_active_pid
periph: added a random-data driver interface
Merge pull request #939 from mehlis/random-driver

random: added a random driver interface
Merge pull request #1583 from Kijewski/issue-1399

core: SCHED_PRIO_LEVELS==16 for every board
tests: limit concurrency level

Some Travis CI machines have 32 CPUs. This sets our concurrency level to 33.
Travis CI kills our buildtest for obvious reasons.

This PR limits the concurrency level to 8 on Travis CI.
cpu/sam3x8e: added random number generator driver
boards/arduino-due: enabled RNG driver
test/periph_random: added test for RNG driver