Bringing step inline with jsword master

Hi

I'm trying to bring STEP's JSword branch inline with crosswire/master. But it seems there are quite a few discrepancies. Unfortunately they are from quite a long time ago, so trying to remember what these all entail. Hopefully once I'm back inline it will be easier to provide individual commits, rather than this large bulk of random stuff.

Let me know if this doesn't work, and I guess I'll have to go through all the bits that are missing.

So here's some of the stuff that this brings in:
* a gitignore change to ignore Intellij files
* a couple of small performance optimizations (i.e. removing compilation of VERSION pattern at every book load, moving from list to set so that loop iteration doesn't proportionally get large)
* a couple of null pointer fixes.

Apologies that this comes with 62 commits - that's how far my branch has diverged (have been cherry picking so most of those commits are in the JSword master branch already).