Factored a NIFStream class out of the NIFFile class.

Split NIFFile into two parts, NIFFile which is cached and is a container
for a parsed NIF, and NIFStream which is a class specialized for parsing
NIFs. This required a semi-sweeping change to make all record classes
accept a NIFStream instead of a NIFFile as an agurment to their read
functions.
refactored NIFFile parse to get better code/data seperation
renamed low-level NIF related files and include guards to conform to naming convention
renamed high level NIF files...