Viral capsids as programmable nanobuilding blocks