Refactored the code.

Moved implementaton class definitions into a header file.
Renamed namespaces to SynthEngine and SynthEngineIface.