reworked NIFStream to use a type-handler

Reworked NIFStream to use a type-handler system to decide how to extract
data from the NIF. It also has the capability to perform bulk reads on
compatible platforms, thus improving cell-load performance.
reworked Nif::KeyListT into Nif::CurveT

Renamed Nif:KeyListT to Nif::CurveT, moved it into its own file and
changed its implementation so that on compatible platforms, the entire
array of key-frames can be read in a single read call. Added a helper
class called Nif::CurveT::interpolator to allow other code to easily
evaluate the curve. Reworked part of the skeletonLoader code to use
the interpolator to simplify its own logic.
enable move construction/assignment to key ESM data structure to reduce sorting costs
hid JournalWindow behind IJournalWindow interface, and put its entire
implementation, class definition and all, into journalwindow.cpp
Updated journal layout to match Bethesda's version more closely
Created a class to represent a stream of UTF8 characters.
Created a MyGUI widget to present a page of formatted text.
Created a view-model to present journal data to the UI in the form it
intends to display it.
Created a helper class to format books for display from the journal
view-model data.
reworked journal to match bethesda's implemenation
fix for gcc not handling static constant initialized in class definition
port code to C++03
made a pass at conforming to established naming convention
drop the leading 'I' from the book page control interfaces
dropped the I infront of the journal view model interfaces
Revert "reworked NIFStream to use a type-handler"

This reverts commit 03ee7663a3e89698c36108d03a7fcd036762d827.
Revert "reworked Nif::KeyListT into Nif::CurveT"

This reverts commit e7665582ad9b855522b37d955997df527254a01d.
Revert "enable move construction/assignment to key ESM data structure to reduce sorting costs"

This reverts commit 6dbb53493b34c6430e8bdf0ea0d4f411facfa1b5.
Merge branch 'master' into HEAD
Merge branch 'master' into journal