Refactor for great justice.
Refactor for great justice.

* Used objects and their relationships to represent everything.
* Created Node class to encapsulate node-specific logic.
* Created NodeManager class to check and fetch nodes.
* Created NodeError class to capture node name.
* Renamed methods to more idiomatic names.
* Eliminated needlessly complex display callback system.

igal/pocketknife,neillturner/pocketknife