Added support for empty / low-dimensionality chains

These additions bring in an optional configuration parameter to add a diagonal covariance matrix on top of the one that comes out of the forward kinematics jacobian. Also, it adds a handling for empty chains so they are always settled instead of never.

There's another small fix in there for catching Ctrl+C. Without this, you can only cancel the estimation by killing the process from outside. Let me know if you want this to be in a separate pull request.