added AbstractCalculatable

further refactoring as a result of removing Calculatables from
KnowledgeBase - trying to remove repeated boilerplate #72