New emulator.h API

Massive pull request refactoring and redoing the C emulator:
* emulator API now in separate mod_api_t class, which contains a mod_t object pointer and pointers to the dat_t and more data about each memory / wire (like width/depth)
* expanded and improved emulator API (added functions to get wire width, memory width/depth in a standardized way)
* new interface for teefile and vcddumpfile, without relying on passing file handles everywhere (WILL THIS BREAK ANYTHING?)
* emulator.h now broken into emulator_api.h and emulator_mod.h
* removed base classes from emulator.h dat_t and mem_t (should help performance)
* change Tester to work with new API, along with some refactoring for style
* Chisel internal tests and tutorial/examples tests pass. tutorial/solutions TESTS FAIL spectacularly, but that seems to happen on master as well. nothing else tested