Create global for encoding list

This way we don't need a symbol lookup inside the path for symbol
lookup. This would cause a deadlock with fixing some SymbolTable locking
issues.
Lock around all symboltable operations

These operations weren't locked around, so it could cause issues when
a thread for example was resizing the backend storage for symbols and
another thread was using lookup_debug_string.

This could for example happen when the JIT was running since that uses
lookup_debug_string. It uses this for the module naming of jitted
 methods. If at that same time symbols were added and a resize
necessary, this could cause invalid memory usage or corruption.