Adds regex dependency and enhances error handling system
Introduces comprehensive error type hierarchy with specific variants for parser, symbol, codegen, threading, and IO errors to improve error reporting and debugging capabilities.
Adds regex crate for pattern matching in tokenizer implementation with pre-compiled patterns for labels, registers, immediates, directives, instructions, and symbols.
Enhances source info functionality with context printing and error underlining similar to compiler diagnostics.
Implements better error conversions and threading error handling for lock failures and panics.