Colloidal Robotics: Programming Structure And Function In Colloidal-Scale Material Through Emergence, Design And Logic