Add initial rotation parameter to bvh reader

BVH files use Y as up whereas Bender uses Z as up. To prevent the armature
from being misaligned, we add the initial rotation parameter that allows
to transform the bvh armature in the Bender coordinate system.

The different poses  are modified according the initial rotation as to
preserve the animation but on the rotated armature. By default, the
initial rotation will transform a bvh armature in the Bender
coordinates.

The initial rotation parameter should ideally be set before reading an
armature from file. Setting it after will cause the reader to re-read the
file as it needs to recompute the rest and poses of the armature given the
new initial rotation.

This allows us to remove the fix code in the animation import to align
the animation armature and the target armature as they are now closely
aligned (unless the animation armature's pose is intended otherwise).
Expose RotationFromReferenceAxis method

Also add testing for the rotation method in vtkBoneWidget.
Add transformation support to armature

The rest armature can now be transformed by scaling, rotation or
translation using armature's method. The GetAllBones() method also allows
to retrieve all the bones of an armature.
Add an armature reader

The armature reader reads in *.vtk or *.arm polydata files and outputs a
vtkArmatureWidget.
Also updating the BVH reader filename check.
Improve vtkArmatureWidget and vtkBoneWidget API

Add multiple transform methods (Scale, Rotate, Translate).
Return the value of the previous state when changing the widget state.
Add root accessors methods in armature.
Refacort FindBoneChildren to possibly search for all the children
recursively.
Add animation import from bvh files

The animation import was factorized in the armature node helper. This helps
to clear te qSlicerArmatureIO. Also adding the missing node methods that
were added to the widgets.