moving priority_queue up
total refactor. 1 module per algorithm

This shows various algorithms together in the same result set. Works on
Ruby 1.9.3, failing for unknown reasons on rubinius