**Setup** provides interfaces that should be used or implemented by Setup data and schema installs, upgrades and uninstalls.
 
Implement `InstallSchemaInterface` and/or `UpgradeSchemaInterface` for DB schema install and/or upgrade.
Implement `InstallDataInterface` and/or `UpgradeDataInterface` for DB data install and/or upgrade.
Implement `UninstallInterface` for handling data removal during module uninstall.

Setup application provides concrete implementation of a module context and setup DB/schema resources, so they can be used to determine current state of the module and get access to DB resource.
