Add gradle script, K2Exception and i18n framework

Ignore previous request; missed committing a change on one of the files.
To reenforce what I said above, having this not be static would make it much less likely to interfere with other tests.  What happens to tests that run after this - especially if someone wants to write a French messages test...