**Complete overhaul of library:**
- new file packaging and manifest system, ability to extract individual files from the stream as frames are decoded
- read and write both use multiple CPU cores for substantially better performance
- file masking added- optionally encrypt stream data and manifest along with the payload, hidden until correct key used
- presets added- set certain write configurations using a simple string as a key, without having to explicitly state them each time
- many utility functions added to control BitGlitter's state entirely like an API (so the Electron app can do just that), can get or set all end-user-relevant data
- 150% speed increase through more efficient means of rendering
- persistent data moved from pickle -> SQLite, massively improving I/O performance as well as transparency of saved state for both developers and end users
- frame data moved from binary files to SQL
- complete repo restructure for easier future upgrades and maintenance. all existing logic revisited, simplified and streamlined
- new read feature- stopping read when metadata loads
- new read feature- control whether decoding unpackages the files at read, or at a later time
- new read feature- toggle whether database auto-deletes data when stream is fully decoded and all files are extracted
- new read feature- blacklist specific SHA-256 hashes from being read, auto-aborts from read if ID detected in stream header
- new palette feature- import and export custom palettes with base64 encoded strings, built-in measures to protect against corruption
- new palette feature- generate sample frames from a given palette (or all palettes)
- 40 new sample custom palettes (optimized towards aesthetics vs performance) added as default palettes
- configurable paths for read and write output
- read/write frame progress now includes a percentage as well as current frame position
- countless minor tweaks, improvements, and overall cleanup and optimization of code