Controller for differential drive wheel base

### Diff-drive controller

This controller leverages `ros_control` and furnishes a mean to control a differential drive wheel base.
It has been implemented and tested on the REEM robot.

Overview of its features:

* takes a `sensor_msgs/Twist` message as an input, and will control the wheel base assuming a set of two coaxial wheels through two `VelocityJointInterface`.
* publishes odometry through an `nav_msgs/Odometry` and to `tf`, with a transform from `/odom` to `/base_link`
* implements task-space velocity and acceleration limits
* automatic stop after command timeout

The configuration is done through `rosparam`, here is an example of a controller parameter file:

```yaml
mobile_base_controller:
  type        : "diff_drive_controller/DiffDriveController"
  left_wheel  : 'wheel_left_joint'
  right_wheel : 'wheel_right_joint'
  publish_rate: 50.0 # defaults to 50
  pose_covariance_diagonal : [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
  twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]

  # Wheel separation and radius multipliers
  wheel_separation_multiplier: 1.0 # default: 1.0
  wheel_radius_multiplier    : 1.0 # default: 1.0

  # Velocity commands timeout [s], default 0.5
  cmd_vel_timeout: 0.25

  # Velocity and acceleration limits
  # Whenever a min_* is unspecified, default to -max_*
  linear:
    x:
      has_velocity_limits    : true
      max_velocity           : 1.0 # m/s
      min_velocity           : -0.5 #m/s
      has_acceleration_limits: true
      max_acceleration       : 0.8 # m/s^2
      min_acceleration       : -0.4 # m/s^2
  angular:
    z:
      has_velocity_limits    : true
      max_velocity           : 1.7 # rad/s
      has_acceleration_limits: true
      max_acceleration       : 1.5 # rad/s^2
```

Request for review:
@adolfo-rt @bmagyar @efernandez