Refactor compiler and simplifier

- Only add semicolons where necessary; this is a workaround for some parsing errors within the Source Engine
- Move lots of code from the compiler to the simplifier
- Fix bind blocks: move contents of binds into auxiliary aliases
- Always surround command arguments with quotes