Maintenance release - Bug fix for 'false change alerts', watch storage improvements, bug fixes, API improvements
What's Changed
* Remove unused function by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1394
* Re 1392 - Adjust PDF detect rules by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1393
* Deleting a watch now removes the watches storage directory by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1408
* Be sure to really not do anything in the case that the checksums were the same by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1410
* Dont rewrite/resave snapshot when its the same data, just bump the history index, saves disk space. by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1414
* Update notification library by hmmbob in https://github.com/dgtlmoon/changedetection.io/pull/1430
* API - Including `last_changed` timestamp in watch API info by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1436
* Replace bs4 with beautifulsoup4 by fabaff in https://github.com/dgtlmoon/changedetection.io/pull/1433
* False change notifications - Don't reset watch checksum when a fetch error happens, adjust test to not test for fluctuating filter Re 962 by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1437
* Be sure that `process_changedetection_results` is off after PageUnloadable and EmptyReply exceptions from fetcher - Re 962 by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1439
* Ticket 962 false change alerts cleanups by dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/1444
New Contributors
* fabaff made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/1433
**Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.40.2...0.40.3