Pyterm improvements

This PR introduces a bunch of new features and improvements to Pyterm.

### Filtering and ignoring of particular lines
Using the power of regular expressions, Pyterm can now filter or ignore certain lines from the node.

### Startup commands
Pyterm can also fire a bunch of strings after conneting to a node.

### JSON redirection
Additionally, you can filter for particular lines (again by using regular expressions) to forward particular lines as a JSON object to a remote server. The JSON object will always contain an ID (`jid`), the raw string (`raw`) and a timestamp (`date`). Additional JSON attributes can be added by using [Python Regex named groups](https://docs.python.org/2/library/re.html).

### TCP connection
Additional to the capability of connecting to a serial port, Pyterm can now connect to a node over TCP. This is particular useful for RIOT's native port and TCP pseudo-UART.

### Prefix Pyterm's commands
In order to distinguish between Pyterm's control commands and commands that should be sent to the node, Pyterm's commands are now prefixed with a slash (`/`). That applies for `/exit`, too.

### Command line arguments
Pyterm has now a proper command line parser.

### Error handling
Exceptions like serial disconnects or Ctrl-C should now be handled correctly.

### Default values
Values for the serial port, baudrate, configuration directories and filenames and so on have now sensible default values that can also be configured over the command line.

This PR fixes furthermore #910 and #1394.
And I'd break the line after the opening bracket - compare https://github.com/RIOT-OS/RIOT/pull/1437#commitcomment-7221453