prevent rounding 0 if HWTIMER_SPEED > 1000000L

The current macros in hwtimer.h expect HWTIMER_SPEED to be < 1000000L, otherwise integer arithmetic will round the result down to 0.
Add a case to prevent that.
cpu/stm32f4: optimized GPIO driver implementation
SQUASH: cpu: fixed some typos
SQUASH: cpu/f4: changed order of irq enabling seq
net: move ping to sys/net

* moved the former ping module from `sys` to `sys/net/link_layer` and renamed to l2_ping
* use defaulttransceiver instead of cc110x
* some refactoring
net: l2_ping uses radio_packet_t instead of packet_info_t
tests: extend cib unittest
core: inline `cib.c`

The functions in `cib.h` are only used in `msg.c`. They are very small,
and proper function calls have a bigger overhead than inlining these
functions.

The difference in .text size (worst to best):

```
+104 native
+69  qemu-i386
+32  mbed_lpc1768
+28  samr21-xpro

-54  chronos
-54  z1
-56  iot-lab_M3
-56  msb-430
-56  msb-430h
-56  msba2
-56  openmote
-56  spark-core
-56  telosb
-56  wsn430-v1_3b
-56  wsn430-v1_4
-58  arduino-mega2560
-60  airfy-beacon
-60  arduino-due
-60  f4vi1
-60  msbiot
-60  pca10000
-60  pca10005
-60  stm32f0discovery
-60  stm32f3discovery
-60  stm32f4discovery
-60  udoo
-60  yunjia-nrf51822
-72  avsextrem
-72  pttu
-120 redbee-econotag
```
C++ -_-
cpu/nrf51822: added HFCLK initialization
boards: added CLOCK defines to NRF based boards
board/msbiot: added support for C++
board/f4vi1: enabled support for C++
core: move NTOHL and friends into byteorder.h
sys: use byteorder.h in cbor.c
core: allow inclusion of byteorder.h in C++ code
native: add random syscalls
native: add random peripheral implementation
tests/periph_random: fix warnings, conventions
c++: `s/restrict/__restrict/`

`restrict` is not a keyword in C++, but `__restrict` is understood by
GCC-ish compilers.