Building Gradient by Gradient: Decentralised Energy Functions for Bimanual Robot Assembly