A Reference Software Architecture for Social Robots