[FEATURE] new I/O module

In the new I/O module we:
 * introduced exceptions for more informative error messages
 * support for gzip, bzip2, bgzf compression under one interface (VirtualStream)
 * introduced the SmartFile as an efficient and easy-to-use high-level interface file to access different formatted files under a unified interface
 * auto-detection based on extensions/content and support for pipes