Customising error messages

Added the ability to customise each of the error messages thrown from the plugin. This was necessary to support multiple languages.

It shouldn't break any existing projects because all of the defaults still remain.