Learner implementation
Restructuring.

Add representation for entire system (Cluster).
Allow nodes to maintain multiple roles.
Merge pull request #21 from demarius/rewrite

Merge rewrite, even though it breaks built.