native: use `real_pipe()` and `read_close()`
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
posix: add read() and write()
sys: add POSIX pipe