Refactored IDE to support multiple types of sessions

Refactored the code to support other types of sessions besides text files being edited (like UML diagrams) in the future.