* Simplified `abstract` module and moved all abstract classes to their relevant modules
* Removed `curvept` and `surfpt` methods. Use `evaluate_single` instead.
* Added an option to enable/disable knot vector normalization. Initialize the class with `normalize_kv=False` to disable knot vector normalization.
* Added B-spline and NURBS volume support with visualization, `BSpline.Volume` and `NURBS.Volume`
* Refactored `convert` module to improve reusability and add support to volumes
* Refactored `exchange` module to improve reusability
* Rhino file export and import options, `export_3dm` and, `import_3dm` in `exchange` module
* Added `exchange.export_vmesh` for exporting NURBS volumes
* Add Jinja2 template support for `exchange.import_txt`
* Update the name of `utilities.check_uv` function to `utilities.check_params`
* Refactored `utilities` module and moved some functions to `linalg` module
* `VisMPL.VisSurfTriangle` is now an alias for `VisMPL.VisSurface`
* `fitting` module for curve and surface global interpolation + approximation (fitting)
* `construct` module for constructing surfaces and volumes + extracting surfaces and curves
* `linalg` module (generated by splitting `utilities` module)
* `VisVoxel` and `VisVolume` classes for volume visualization
* `VisVTK` visualization module