Create and populate FileType class

The new FileType class describes just what can be done with any of a number
of file types.  It is intended to describe to the IDE how different files
can be handled in the IDE - whether they can be edited (and how), what
syntax highlighting to apply to them, etc.  At the moment it only handles
basic information, but eventually it may be expanded to deal with deciding
how a certain file type should be compiled (which recipe to use for it)
etc.  This should make expanding the system to cover other languages in the
future much simpler.