Cleaned up interpreter and engine pretty printing
Added first draft of K3 syntax pretty printing (see Language.K3.Pretty.Syntax).

Added custom logging functions for fine-grained logging. This allows logging via tags within a module, e.g., Language.K3.Runtime.Engine#EngineSteps or Language.K3.Interpreter#Dispatch. Logging levels can be enabled with the --log flag in the driver.

Cleaned up engine and interpreter debugging output.

Refactored annotation name extraction to the core modules.