sys: add  Universal Binary JSON module (UBJSON)

### → http://ubjson.org/

Right now I ~~only~~ implemented reading and write, ~~but this~~ *and it* should work.
It is an SAX/expat-style parser, i.e. you provide a read function and a callback function.
The example application is a pretty printer.

I implemented the dialect that's described on their homepage, which is quite different to the [Wikipedia](http://en.wikipedia.org/wiki/UBJSON) article.
The advantage of UBJSON is that it is
* more easy to parse than [JSON](http://json.org/), while it's equally easy to read,
* more concise than [BSON](http://bsonspec.org/),
* less of an unfathomable monster than [Apache Thrift](https://thrift.apache.org/) or [Google Protobuf](https://code.google.com/p/protobuf/)
* maybe less nice than [MessagePack](http://msgpack.org/), but UBJSON has far less special cases.

I don't know CBOR.

UBJSON is -- like JSON -- schemaless.
E.g. the lines
```c
if (false) { case UBJSON_MARKER_INT8: *content = UBJSON_INT32_INT8; }
if (false) { case UBJSON_MARKER_INT16: *content = UBJSON_INT32_INT16; }
    abc;
```
do the same as:
```c
case UBJSON_MARKER_INT8:
case UBJSON_MARKER_INT16:
     switch (marker) {
         case UBJSON_MARKER_INT8: *content = UBJSON_INT32_INT8; break;
         case UBJSON_MARKER_INT16: *content = UBJSON_INT32_INT16; break;
    }
    abc;
```