2048 sample

Not fully polished, PR to get some feedback.

The io/console implementation is very rough and doesn't even implement everything http://rxr.whitequark.org/mri/source/ext/io/console/console.c does, even not for the methods implemented. So this probably works only on Linux, if not only on Archlinux.

The added FileDescriptorIO#read_nonblock differs from Rubys in that it returns `nil` when encountering `EWOULDBLOCK` or `EAGAIN` instead of raising these. Here's MRIs implementation: http://rxr.whitequark.org/mri/source/io.c#2541

This exposes various seg faults and a `SIGFPE`, though I didn't find any pattern to trigger them yet. So not sure if they are in the added code or in the existing.

I'm open for any suggestions.