Moved metadata methods to TreeElement superclass
Merge branch 'master' into refactor
Outsourced getting of unavailable keys
Removed unneccessary a=a line
Outsourced code chunk
Simplified implementation
Outsourced argument parsing for instance
Outsourced command selecting condition
Outsourced command keys getting
Outsourced getting of all command prefixes
Outsourced prefix matching
Use the new #all_command_keys method here
Added TreeElement#read_metadata! abstract supermethod + test

This adds the TreeElement#read_metadata! method as well as the
appropriate overrides.
Specify the metadata file name only once
Pull this method up to the superclass, we need it elsewhere too
Change the implementation of #parse_metadata!

Change the implementation of #parse_metadata! to return the actual metadata
Outsourced metadata_file_path generation
Ensure we do not remove everything endlessly here
Now we can ensure that the metadata is written in _one_ step
Don't do unneccessary file system operations

Ensure that we do not do unneccessary file system operations by
re-writing the metadata every time when calling
the #ensure_metadata_written! method