* New data splitting tool `surround split`
* New classification visualiser tool `surround viz`
* Add `surround run jupyter` task to generated projects which starts a notebook container
* Fix configuration file not being loaded automatically
* Add finaliser stage to Assembler, which will be ran at the end of the pipeline regardless if it was successful
* Load configuration from anywhere using the `auto_load=True` argument in `Config` constructor
* Support multiple assemblies and runners
* Use builder pattern to create assemblers
* Rename `BatchRunner` to `FileSystemRunner` in generated projects
* Simplify running process, load data only, hide running method in generated projects
* Rename `SurroundData` to `State`
* Rename `Stage`'s method `init_stage` to `initialise`
* Rename `data/` folder to `input/` in generated projects
* Rename config["data_path"] to config["input_path"]
* Rename config property `data_path` to `input_path`
* Add `trainLocal`, `batchLocal` and `webLocal` tasks
* Load project's `config.yaml` by default
* Windows Support (more fixes than previous release)
* Support underscores in project names
* Add type hints to the codebase
* Add `--version` flag to the Surround command-line tool
* Retrieve package version from `__version__`