adds program controller, user dialog, and directory validation
begins implementing full functionality with update, organize, and execute methods
refactors read_tag and write_tag methods, adds test support for organize method
adds error handling for unopenable metadata tags, fixes bug in organize tests