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.
Merge remote-tracking branch 'emperorarthur/nif-cleanup'