Provide more data when nifstream throws a runtime_error
Print a NIF file's version information when an error occurs
Moved base NIF classes into a separate file.

This resolves the dependency mess, and makes things more readable.
The dependency tree for nif records now looks like this:
Record.hpp
--base.hpp
----controlled.hpp
----controller.hpp
----data.hpp
----effect.hpp
----extra.hpp
----node.hpp

Node.hpp has many extra dependencies because nifogre only includes it instead of each of these files.
That should be fixed.
Begin the process of handling more nif versions
Properly handle (some) NIF files of Version 20.0.5