Multi-Material Topology Optimization and Multi-Material Selection in Design