Effort position controller fix

* Added enforeJointLimits() function
* Enforced joint limits at ``update()`` and ``starting()`` functions
* Cleaned up joint_state_controller
* Added .gitignore

This fixes a bug where if you start the controller and your current joint position is slightly outside the joint limits, the starting commanded position is also outside the limit, and the ``shortest_angular_distance_with_limits`` function returns an incorrect value of 2*PI instead of a small decimal. This causes the error to be very high and causes a lot of noise in the PID controller.

This bug is also issued here: https://github.com/ros/angles/issues/2