A hierarchical representation of behaviour supporting open ended development and progressive learning for artificial agents