COMP: Virutal functions and shadow variable ambiguity

Virtual functions were being shadowed and variables were
being shadowed by class scope functions and similar names.

While technically this **MAY** not cause a problem, it makes
otherwise simple code cleanups much more difficult. Code is
much easier to maintain when unique variables are either uniquely
scoped, or given unique names.
ENH: Respect thread limits from environment

Setting the ITK number of threads must be done
carefully when used as part of the Slicer environment.

When this is used as a shared library module inside of slicer
it would reset **ALL** of Slicers ITK functions and programs
to be set to the number of threads specified by UKF after
UKF was run.   The solution is to reset the ITK number of threads
when exiting the program.  This is accomplished with a object that
does the resetting upon deletion.

As a side benefit, when UKF is used inside of a batch processing
system (i.e. SGE, OGS, PBS, torque, etc...) it will respect the
number of threads allocated by the scheduler.
BUG: Extracting state for tensor was incorrect!

There was a copy/paste bug in extacting components
from the state for writing to disk. This was tested
and corrected in this patch.

The error was identified because the (_p_psi = 2) variable
was never used.
PERF: Simplify code to ease maintenance, and performance

The code was unnecessarily complex with member variables
that were only used in one location and were hard coded
to constant values in all cases.  By making them constant
values and co-locating their definition to the member function
that used them it greatly simplifies understanding the
intent of the code.