Ingredient effects now correctly hide until the player has discovered them
factored out two function from OMW::Engine::go

The initialization code inside Engine::go is now in two function it
calls prior to running the main loop.
changed bullet_nif_loader to not modifiy NIF file

The code in bullet_nif_loader was modifing the loaded NIF file as part of
processing. Currently this is OK since the NIF file will be thrown away
immediately, but it causes problems when trying to share loaded NIF files.
spread some const around NIF loading
cache loaded NIF files to eliminate reloads

Created a NIF file caching mechanism to prevent the system from
reloading a NIF during a startup and cell changes.
Mix debug and release if necessary under non Windows systems.
Merge remote-tracking branch 'blunted2night/nif_cache_v6'
Merge remote-tracking branch 'scrawl/ingredients'
Fixed crash on changing cell due to Utf8Encoder going out of scope
Close NIF file resource after loading it into memory
Merge remote-tracking branch 'scrawl/nif_file'