HARMONIC: A Framework for Explanatory Cognitive Robots