Fixed a missing semicolon.
Shader is now stored in Core Data

This also moved more logic from the model to the item layer, and should
allow support for #33 as soon as the UI is up to the task.