Updated user interaction based on Matt's work

This branch takes care of #4.

@labrenzm, I think everything was fine with your branch.  The issues with the keys not having the proper behavior was because we were basing the impulse force on the x or y position whereas I think they can just be added to the constraint alone.  You'll note that I've added a slightly smaller force for the keys as opposed to the 10 from the original project (and I've also modified the springiness coefficient).