Added emergency stop support.

I have added emergency stop support to the gazebo_ros_control and DefaultRobotHWSim plugins. gazebo_ros_control now resets the controllers when the robot's simulated hardware indicates that the emergency stop has been deactivated after being activated. DefaultRobotHWSim now subscribes to the Boolean topic specified by the eStopTopic SDF element. Messages received from the topic control the E-stop. When the E-stop is activated, the following occurs:

* If a joint's position is being controlled, DefaultRobotHWSim maintains the position the joint had when the E-stop was activated.

* If a joint's velocity is being controlled, the velocity is set to zero.

* If a joint's effort is being controlled, the effort is set to zero.

Originally, I did that. In fact, the E-stop subscription and callback were in gazebo_ros_control_plugin.cpp. I changed the code in response to this comment in https://github.com/ros-simulation/gazebo_ros_pkgs/issues/258:

> Does your proposal only affect the DefaultRobotHWSim implementation?. I get the
> impression that it does, and I would agree with this course of action, and to not impose one
> E-stop implementation in the general case. This would mean that the eStopTopic SDF
> element would only be read by DefaultRobotHWSim implementation, and not by 
> RobotHWSim, correct?.

My original plan was to put as much of the E-stop code as possible into gazebo_ros_control_plugin.cpp, and only make default_robot_hardware_sim.cpp responsible for stopping joint motion. When I considered your comment, it occurred to me that alternative RobotHWSim plugins might want motion pause/resume controlled by some mechanism other than a topic. For example, initSim() could open a Qt window that contained *pause* and *resume* buttons. Here are the strategies I've considered:

1) gazebo_ros_control_plugin.cpp subscribes to the E-stop topic and contains the callback. It calls RobotHWSim's eStopActive(), passing it an argument telling it whether the E-stop is active. default_robot_hardware_sim.cpp is responsible to checking the state set by eStopActive(), pausing and resuming joint motion as necessary.

2) RobotHWSim is responsible for detecting E-stops, either by subscribing to a topic, or by some other means. It pauses or resumes joint motion, and informs gazebo_ros_control_plugin.cpp of the E-stop state via RobotHWSim's eStopActive() (which does not have a parameter in this case). gazebo_ros_control_plugin.cpp calls eStopActive() during each control loop iteration, and resets controllers in response.

I'll modify the code to match whichever strategy you prefer.