hector_pose_estimation/hector_pose_estimation_core: added support for dynamic states (full, orientation only, position/velocity only, ...)
hector_pose_estimation_core: fixed DenseBase compiler errors with Eigen 3.2.1 and clang (fix #4)
hector_pose_estimation_core: differentiate between vector and covariance dimension in State, SubState, SystemModel and MeasurementModel (work in progress)
hector_pose_estimation: work in progress
hector_pose_estimation_core: first functional version with multiplicative EKF

I still have to check the PoseUpdate class...
hector_pose_estimation_core: do not return reference to (potential) temporary in Collection::add()

Collection::add() returned a const reference to its argument, which could be a temporary depending on how it is called.
hector_pose_estimation_core: added a method to get the residual of the last measurement update to Filter::Corrector_<Model>
hector_pose_estimation_core: removed the SymmetricMatrix(dim,value) constructor
hector_pose_estimation_core: properly cleanup the cached noise variance in Measurement_<Model>::reset() default implementation
hector_pose_estimation_core: reintroduced traits for SystemModel and MeasurementModel implementations
hector_pose_estimation_core: fixed calculation of reference magnetic field vector pointing to magnetic north and inversed transformation to body frame
hector_pose_estimation_core: fixed missing return value in EKF::predict()
hector_pose_estimation_core: do not scale variance of magneto measurement in normalized mode

With this patch the magnetic/stddev parameter is considered as the standard deviation of the
normalized measurement vector and not of the raw measurement if the magnitude of the field
is not modeled (the magnetic/magnitude parameter is 0). If the magnitude is set, the normalization
is inactive and the stddev relates to the original measurement vector.
hector_pose_estimation_core: moved check if a pseudo update is required from Model::active() to PoseEstimation::update()
hector_pose_estimation_core: added parameter 'use_bias' to measurement models that can incorporate biases

* Only the AccelerometerModel and GyroModel add new substates named `name + "_bias"`. There could be multiple accelerometer and gyro models.
* The default name for these two models is "accelerometer" and "gyro" and the default bias substates are called "accelerometer_bias" and "gyro_bias".
* Measurement models Gravity, Zerorate and Rate have a new string parameter 'use_bias' which defaults to "accelerometer_bias" or "gyro_bias", respectively.
* Only if this substate is found the biases are considered in the measurement models. Otherwise the models will not use a bias.
  The gravity model uses the bias only to calculate the expected measurement vector but does not populate the respective entries in the measurement matrix.
* The initialization order of systems and measurements in PoseEstimation::init() has been swapped. First systems to register new states, then measurements.
* The 'imu' input is not added automatically anymore by the GenericQuaternionSystemModel, but is only used if it was already registered before initialization.

The whole patch aims at incresing the flexibility, e.g. to use the GenericQuaternionSystemModel without an IMU and/or with other force and torque inputs.
hector_pose_estimation_core: several updates (see below)

* Added missing orientation-orientation derivative in GenericQuaternionSystemModel
* Readded dimension paramters to SystemModel templates
* Readded class BaseState and State::base() accessors (currently unused)
* Added typed getters PoseEstimation::getSystem_<T>(name) and PoseEstimation::getMeasurement_<T>(name)
* IMU-based prediction is now in the GenericQuaternionSystemModel class again.
  The accelerometer and gyro models are added automatically if GenericQuaternionSystemModel::init() found an IMU input.
  GenericQuaternionSystemModel calls methods on the IMU model classes to get the errors, derivatives and noise.
  The IMU models themselves do not add
* Added class SkewSymmetricMatrix
* Avoid calling SymmetricMatrix::symmetric() as, surprisingly, this method seems to be quite expensive. Symmetry is only
  enforced if assigned from a matrix which is not a SymmetricMatrix.
* Added Eigen optimizations (avoid copies and added alignment macros)
* Moved system and measurement status management from class Filter to PoseEstimation
Merge branch 'dynamic_state' into multiplicative-filter

Conflicts:
	hector_pose_estimation_core/include/hector_pose_estimation/filter.h
	hector_pose_estimation_core/include/hector_pose_estimation/filter/ekf.h
	hector_pose_estimation_core/include/hector_pose_estimation/filter/ekf.inl
	hector_pose_estimation_core/include/hector_pose_estimation/matrix.h
	hector_pose_estimation_core/include/hector_pose_estimation/measurement_model.h
	hector_pose_estimation_core/include/hector_pose_estimation/state.h
	hector_pose_estimation_core/include/hector_pose_estimation/substate.h
	hector_pose_estimation_core/include/hector_pose_estimation/system_model.h
	hector_pose_estimation_core/include/hector_pose_estimation/system_model.inl
	hector_pose_estimation_core/include/hector_pose_estimation/types.h
	hector_pose_estimation_core/src/measurements/baro.cpp
	hector_pose_estimation_core/src/measurements/gps.cpp
	hector_pose_estimation_core/src/measurements/gravity.cpp
	hector_pose_estimation_core/src/measurements/heading.cpp
	hector_pose_estimation_core/src/measurements/height.cpp
	hector_pose_estimation_core/src/measurements/magnetic.cpp
	hector_pose_estimation_core/src/measurements/poseupdate.cpp
	hector_pose_estimation_core/src/measurements/rate.cpp
	hector_pose_estimation_core/src/measurements/zerorate.cpp
	hector_pose_estimation_core/src/state.cpp
	hector_pose_estimation_core/src/system/generic_quaternion_system_model.cpp
	hector_pose_estimation_core/src/system/ground_vehicle_model.cpp
	hector_pose_estimation_core/src/system/imu_model.cpp
hector_pose_estimation_core: use preallocated Eigen types

The maximum number of state variables in 24.
hector_pose_estimation_core: added state type OrientationPositionVelocityState (without rate)
hector_pose_estimation_core: fixed orientation noise calculation