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
Bugfix #748
Add a weapon state to the character controller
Fix door collision to work with all possible movement directions
Merge remote-tracking branch 'glorf/bugfix-4'
Merge remote-tracking branch 'kcat/animations'