Self-Assembly of Colloidal Building Blocks into Complex and Controllable Structures