Throw an error when deserializing a bad type

This error should never be encountered, as long as we always update the get
function when the put function is, as required by get . put == id.
Remove catch-all match in Declaration

These ought to actually be written out, as the previous TODO message stated,
but at least this way the compiler will warn us when adding a new Decl.
Add invalid serialization errors to Module.hs
Fix typo
Add a catchall to inner toDefs function

I think it would be more appropriate to reorder this code as to only case-match
over defs once, but I'm not sure of how to approach this (yet).
Also catch Just [] as an error

Motivation here is that if we can't even extract a name and description, it's
an error.
Improve error message
Merge pull request #321 from Sheeo/sourcesyntax-matches

Incomplete matches in sourcesyntax
Merge pull request #322 from Sheeo/type-incomplete-matches

Incomplete matches in Type.hs
Merge pull request #323 from Sheeo/transform-incomplete-matches

Incomplete matches in transform directory
Better error when bad backslashing is used in strings
Just show the value of located things, not the location.
Minor reformat of an error message to keep each line under 80 characters
Remove instance of unsafePerformIO
Merge pull request #338 from jsl/fix_unsafe_io

Remove instance of unsafePerformIO
Merge branch 'dev' into topic/best_practice_webgl