add new error codes; make handler not barf on unknown error codes

How about making a method in protocol.py to do the lookup with unknown checking (get with default value, or if key in dict) and changing the raw map access to just call that method. That way you don't need to do it with try/except.