Guess language using the file contents as a fallback

Fixes #31 -- though the highlighting isn't great.

Might want to add a checkbox to disable syntax highlighting, since it's fairly aggressive after this change.