Refined mesh surface extraction

Added an angle-parameter to extract surfaces more precisely.
Before: All surfaces were extracted where the normal didn't deviate from the given vector by more than 90 degrees.
Now: All surfaces are extracted where the normal doesn't deviate from the given vector by more than the given angle, with 0 < angle < 90 degrees.
there *is* a virtual clone function