eolian: add library support for declaring and using errors
You can now declare errors like this:
error Foo = "message"; documentation
Then you can use them as types like this:
return: error(Error1, Error2, ...);
They have a separate type category and storage. They are checked
for redefinitions the same as anything else though. This does
not add any generator support nor it adds any advanced checking.