Performance and safety improvements

I tried to use this lib to convert 34000 bank accounts. This took 11 minutes even with 8 cores working on it. Turns out the XML document instantiation on every single account was the main performance bottleneck. Here is a fix for that, including thread safety (org.w3c.dom itself is not threadsafe).

Execution time is down from 11 minutes to 8 seconds.

I also added several other checks and added exception types for all sorts of errors that occurred in my data.

And I eliminated all System.exit() calls. A library has no business terminating the application using it. Never. Really.

Note: there is a bank with rule number 002700 for which there is no rule defined.

Thanks for providing this library. I hope I could contribute something.