Add new return error
Remove unused function
Rename function
Rewrite loading function

The function now uses `BKDataSetData` which supports variable bits per frame.
Update documentation
Move flag positions up to use global flags
Prepare new functions
Cleanup code
Update documentation
Use general option type
Rename option names
Only free data if it is a copy
Implement convert function
Only dither if 8 bits or less
Set state before step

This prevent sustain reset when attack was not finished.
Do only play instrument release sequence once
Restore master volume after track reset

Also set track volume to maximum so it is not required to set it explicitlet
after initialization.
Add clear functions

Clear does not clear the buffer state which could otherwise affect sound
quality.
Reduce clicking noise when clearing unit
Fix missing break