Updated Java Implementation.

Still not enough commenting but this should be a marked improvement
on the previous version. I forgot how petty ceremony there was around
doing anything the 'java way'. Yes I'm in a foul mood, this language
isn't helping. I'll try C++ next, maybe that will make me appreciate all
of what Java does to help me.