Replace C file streams with POSIX handles.

This gives us access to unbuffered streams, allowing us to implement our
own buffering with `Stream` class later. Also in theory a minor
performance boost when reading files or writing into files should occur
with this.

Downside is that there is currently no Windows implementation for file
I/O but that shouldn't be a problem yet since we don't support that
platform yet. It should be somewhat easy task to implement file I/O on
Windows platform with it's own API. More details on that can be found
at:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb540534%28v=vs.85%29.aspx