DrakeJoint stuff. WIP.
Decided to forget about the whole templated DrakeJoint idea.
Here's the story for posterity. I wanted to make DrakeJoint templated (template <int NumPositions, int NumVelocities> class DrakeJoint) so that DrakeJoints could work with fixed size Eigen matrices for the motion subspace. The motion subspace has fixed dimensions for a given joint type, but may vary between joint types. Using small, fixed size matrices is more efficient than using small dynamic matrices according Eigen documentation, so I wanted the size of the motion subspace of each joint type to be available at compile time.

This didn't work because making DrakeJoint templated means that a RigidBody would not be able to have a DrakeJoint pointer to its parent joint, since DrakeJoint is not a type (DrakeJoint<a, b> where a and b are ints, is a type). So it would not be possible to construct a non-templated RigidBody with DrakeJoints that have different motion subspace sizes. Making RigidBody templated would have been an option, but that's ugly and it just moves the problem, since it wouldn't be possible to have e.g. a vector of RigidBody objects.
* added HelicalJoint
* OneDoFJoint --> FixedAxisONeDoFJoint
* Added motionSubspaceDotTimesV
* glob in CMakeLists for joints.
Added DrakeJoint::name. Namespace fixes.
Starting to work on QuaternionFloatingJoint. Disabled copy construction of the various DrakeJoints.