Fix bug with manual bones.

If both manual bones and shared skeleton are used, a bug in Ogre will only apply the bone transformations to the first entity. This code fixes that.
Fcn(void) => Fcn().
Use enum class instead of enum.
Add missing documentation in SmartBodyAnimation.h.
Add braces to one line if statements.
Remove //#define NDEBUG.
Change for loops through vector collection.
Add documentation for the Behaviors.
NULL => nullptr.
Use std::map<std::string, std::string> instead of std::vector
<std::string> to represent mBones in SmartBodySkeletonMap.
Fix the inclination of the lower part of the body during locomotion
animations.

* Remove setupMotion method (used only by SmartBodyLocomotion, but SBMotion::
buildJointTrajectory() was the cause of this strange inclination).
* Remove the content of SmartBodyLocomotion::applyRetargeting (it applied contraints on
the joint trajectory created into setupMotion()).
* Add some documentation.
Addition of ModelRepresentationHumanoid::isOgreAnimated() method.

It will be used by ModelAttachmentHumanoid to know whereas this representation
should be treated as a normal ModelRepresentation, or if it must alter the position
sent by the server to smooth the motion and make it look realistic.
Addition of ModelHumanoidAttachment.

ModelHumanoidAttachment is derived from ModelAttachment. It is overriding setPosition()
to adjust the new position of the scene node a humanoid model is connected to, in order
to make motions look realistic (takes account of acceleration/deceleration stages during
movement transitions).
Addition of the boilerplate.
Addition of mTranslation member to SmartBodyRepresentation.

This variable (type = double) will be used by ModelHumanoidAttachment
to set the position of the scene node accordingly to the movement.
We also fix the z-position of the base joint, as this will be handled
by ModelHumanoidAttachment.