CylindricalManifold implementation

I adapted this from the old Manifold branch. 

Here is how it looks:

![screen shot 2014-08-06 at 14 53 07](https://cloud.githubusercontent.com/assets/2919756/3827061/8c01c130-1d69-11e4-9345-d61d218bd522.png)

This may be an answer to the question of why you needed to make the tolerance protected:

Here, you derive CylindricalManifold from FlatManifold. Inheritance is often described as an "is a" relationship, e.g., "CylindricalManifold is a FlatManifold". This is not true here. The proper relationship is "CylindricalManifold is a Manifold". You do the derivation because you want to use the new_point() function of FlatManifold in one place in CylindricalManifold::new_point. A different way to achieve this would probably be that if you need this function, that CylindricalManifold *contains a* FlatManifold object that can then be used in the place where you need it. In other words, you'd have a "has a" relationship, which is usually implemented via a member variable. If you did this, then you also wouldn't need to make the tolerance protected -- you'd just have it as a property (member variable) of this class and you'd have a second time as a property of the FlatManifold sub-object.