BEECLUST: A Swarm Algorithm Derived from Honeybees. Derivation of the Algorithm, Analysis by Mathematical Models and Implementation on a Robot Swarm