update dependencies and require stable versions
delete docs files

no one ever needs those were here for experimental reasons.
change logical operators to && and ||
use the built-in settings method to load settings
remove user-specific file from gitignore
specify dependency version
type-hint object params in Closures
remove commented code
remove unused use statements
new line at end and Unix line endings
separate Exception classes into their own files