catch FirmwareException in refreshEncoders()

This can happen if the arm collides with something.
katana JTAC: improve logging in goalReached()
Katana300: change joint positions for testSpeed()

original author: Steffen Pfiffner <pfiffnst@hs-weingarten.de>
katana: pass isPreemptRequested to executeTrajectory()

original author: Steffen Pfiffner <pfiffnst@hs-weingarten.de>
Katana300: override executeTrajectory() implementation

This implementation is based on kni->sendSplineToMotor(), which is
supported by the Katana 300 (in contrast to the
setAndStartPolyMovement() used with the Katana450).

closes #6

original author: Benjamin Reiner <reinerbe@hs-weingarten.de>
Katana300: don't check whether goal position was reached in allMotorsReady()

This usually returned false and looked strange anyway (compare to the
implementation in Katana.cpp instead).

original author: Steffen Pfiffner <pfiffnst@hs-weingarten.de>
Katana300: increase motor acc/vel limits

original author: Benjamin Reiner <reinerbe@hs-weingarten.de>
Katana300: Made arm slower + spinOnce in executeTrajectory
Katana300: Release lock for a short time, so that the robot state publisher can publish the joint state
Katana300: stop arm immediately when trajectory is canceled