Make magnetic barrier a more secure stop.

This PR changes the magnetic barrier code in the following way:
- the detection of the magnetic barrier latches a cut-out, preventing motor commands being processed
- a topic `/barrier_status` of type `scitos_msgs/BarrierStatus` gives the current condition of the "barrier stop", akin to the "motor stop". If true, the robot will ignore any velocity commands. It also gives the time stamp of the last magnetic strip detection and the current timestamp. This is published at 5Hz in the main loop.
- provides a service `/reset_barrier_stop` to re-enable the drive commands, akin to `/reset_motortop`. If the barrier has been detected, the robot will not move until this is called regardless of the motor stop status.
- moves magnetic barrier related code out of the bumper callback. The (non `/motor_status`) bumper data coming from MIRA is a mix of motor stop and bumper pressed so this topic may be removed in the future.