More efficient window updating
In this update:
- A few bugs were fixed
    - When checking off an item that you changed the name of but never pressed enter to confirm, the item's name in complete would be the original name of the item before changes.
    - If you edited an item's name and didn't press enter to confirm and then closed the program, the name change would be lost in the next launch.
    - When you clicked the button to create a blank to-do list, the gui would not be updated and you would need to leave that to-do list and come back to see the to-do list gui.
    - 'todo.json' will be read less often, which could mean better performance.
    - Performance could be better because now the window is not rebuilt when you do anything.
- A new feature was added
    - If you have no items on your to-do list, a label telling you that is the case will appear.
    - Some of the bug fixes can be considered new features because they were never implemented before.

Still to be done:
- Fix ugly __init__() method.
- Add lots of new features.