Refactoring out TU storage into own class

This makes the code more readable, maintainable and robust since we're now
encapsulating the mutex to filename_to_translation_unit_.