Uart0 vs 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.

The reduction of binary size is not huge, but noticable for our smaller
boards (`test_shell.elf`):
```
before     after    board
 55571     49886    native
446812    421983    avsextrem
126737    120714    chronos
512837    494263    mbed_lpc1768
105611     99380    msb-430
105263     99024    msb-430h
447364    422527    msba2
446995    422166    pttu
333803    326342    redbee-econotag
105493     99346    telosb
105926     99815    wsn430-v1_3b
147267    146463    wsn430-v1_4
```