WIP: Add spherical mirrors

Add basic structure of mirrors
No. Initially I planned to derive ```SphericalMirror``` and ```PlaneMirror``` from ```Mirror```. This might be helpful in subclassing other type of mirrors(parabolic etc).