SymbolTable: For efficiency, perform an initial lookup before locking the table.
SymbolTable: Simplified the logic in getSymbol(RubyString).
SymbolTable: Got rid of three parameters to createSymbol; it can easily compute those itself and that makes it easier to use.
SymbolTable: Renamed createSymbol to getSymbolWithLock because sometimes it just gets the symbol, it doesn't always create it.  We might want another function called create that really does create it.