Scale

Please rework as you like.  I may go further but I will like be busy for some time.

Issues:
- NodePriorityQueue used BOTH a queue AND an array, just so that contains() and get() are cheap, but it seems wasteful
- NodePriorityQueue remove() borken.
- test coverage
- coding standards