Kine fit

KinematicState and TrackKinematicStatePropagator
----------------------------------------------------------------------------


KinematicState is implemented in terms of cartesian coordinates and errors. When propagated (for instance by TrackKinematicStatePropagator) transformations back and forth to curvilinear are required. In many cases KinematicState itself is constructed from a FreeTrajectoryState and if no correlation between the mass and the other parameters are present the back and forth is not required if we can use the original fts.
FreeTrajectoryState is therefore cached at construction time in KinematicState . If no additional correlation are present its curvilinear representation is used to propagate the state.
took also the opportunity to use the new magnetic field cache introduced in GlobalTrajectoryParameters

Unit test added.

No regression observed in B vertex analysis w.r.t.  CMSSW_5