Multi-platform, modular reimplementation

**General:**
- Uses a module per platform, so new platforms can easily be implemented
- Better ASCII art handling

**Windows:**
- Uses win32api for everything where possible, removing extraneous dependencies