Matt ayman frames

Merge in branch from Hackathon to create new ModelComponents: Frame, BodyFrame, FixedFrame and Station. The functionality is tested in a separate test case testFrames and in testComponents but is not incorporated into any Models or computations yet. Please take a look at the headers and give us feedback if you plan to use this functionality. The plan is to use Frames to attach geometry, joints, wrapping etc. and to make Markers utilize Stations.
> calcTransformFromGround should not be there and I removed them once before.

These kinds of names are notorious for creating confusion, so it is important to follow a consistent convention about the "sense" of a Rotation or Transform. There are two applicable conventions here: (1)
```
      A B   from to
X_AB = X  =     X
```
The above defines which of the two frame is "from" and which is "to".

(2) Ground is always the "from" frame. That is, API methods should return X_GA and not X_AG. A user who needs the latter can always get it with `~X_GA` or `X_GA.invert()`.

Given the above, I think the API method should be `calcTransform *From* Ground()`, or better, just `calcGroundTransform()` since that is not ambiguous. But it shouldn't say `*To* Ground`.