Redesigned actions

Now, instead of a godawful nesting of if statements to read commands, I
implemented a keyword system. The keywords and aliases are defined in
config.xml. Any one of the aliases for the keyword can be treated as the
keyword (for example, "pickup", "pick up", "grab", and "take" are all
assigned the keyword "take" and will be treated the same at runtime).
This change will make definitions of custom commands later on much easier
to implement.