Reorder and format error messages.

Implemented internationalized error messages with an option to reorder
the arguments if the translation requires the arguments in a different
order than order set by the default language.

Closes #29.