Major overhaul of code

Any type of file can be specified for socrates to test; see the BaseFile
class in filetypes.basefile for an abstract class definition. The
PlainFile and PythonFile classes are subclasses of BaseFile.

Custom test functionality has been merged with custom file types; each
file type can support certain test types, and/or provide implementations.

The Evaluation class has been removed.