* fix update file structure
* add commands DELETE_FILE,DELETE_DIRECTORY,CREATE_DIRECTORY
* add error.ErrorState - chained error state infrastructure
* rename metadata.*filaname to metadata.*path where appropriate
* check gcode extensions ".gcode", ".gc", ".g", ".gco" for FDM
* bugfix: don't fail on extracting metadata from non-existing files
* introduce basic ErrorState instances in errors.py and use in __init__.py
* introduce errors.TOKEN signaling if a token is available
* add ironing to FDM metadata
* introduce `File.size` as a settable property
* added functions for save/load cache of data
* fix event data structure
* new STOPPED state
* typed package
* load() function and test_metadata modification
* cache file name modification
* if metadata are empty, cache is not created
* No notification handler
* No communication without token
* automatically creating and delete cache using inotify handler
* SDK ignores hidden .<filename> files
* SDK ignores hidden .<foldername> folders and files inside
* Don't throw an exception on processing invalid metadata
* layer_height attribute added to FDM metadata
* estimated_to_seconds function
* Added function for check free space of storage
* Send `Clock-Adjusted: 1` header on clock adjustments
* Added free_space attribute for INFO, MEDIUM_INSERTED and FILE_CHANGED events
* Added last_updated attribute to Mount class
* new stop_loop method
* inotify_handler is not call in Printer.loop
* get_file_info` raises a ValueError for dirs
* fingerprint in INFO event