ringbuffer: remove example
ringbuffer: add convenience functions

This patch add `peek` functionality, and empty and full helpers.
ringbuffer: fix parameter types

It is a bad idea to use signed types for lengths.
Mark pointers a `restrict`, since the ringbuffer is not thread safe
anyway.
ringbuffer: remove pointer to the end

There is no need for an explicit pointer to the end of the buffer.
ringbuffer: don't overwrite in `ringbuffer_add`
ringbuffer: add documentation
ringbuffer: add static initializer
ringbuffer: add test for add_one and get_one
Add generic `char` pipe implementation
Uncouple UART from POSIX

`uart0` is a far more basic module than `posix`.
The latter one pulls in dependencies to `vtimer`, to give an example.

This change uncouples `uart0` from `posix`. The uart0 module now depends
on `pipe_t`, which also disemploys the costly message passing for every
keystroke.

There is a subtle change in here which must not be overlooked:
- `pipe_t` does not accept characters once it is full.
- The prior loop overwrote the oldest data.

Since the new behavior is more of what a user would expect, I'd dare to
call this a bug fix.
sys: remove now unused chardev_thread
msp: provide `getchar()` for MSP430 boards
.
posix: call fd_init() in auto_init()
posix: move close into fd.c
posix: use function table for FDs
sys: add POSIX pipe