Arity knots

Implemented abstract classes for unary, binary and ternary knots. 
These classes interact as interfaces for corresponding operators. 
Did little refactoring/repackaging as well.