Merge pull request #2 from four04/master

unary operator expected fix when no argument supplied
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.
Left behind in last commit
I added these lines while monitoring `git diff` which I did while writing the commit message in `git commit -a`, which resulted in them not going through.

In the future I'll write the commit message external from `git commit -a` to prevent this from happening.
Fixed bug, renamed installer
Fixed a bug where if you did not have preferences set the window would not open.  This bug was caused by me trying to set a window size request with a variable that only existed if preferences were set.
I renamed `installer.sh` to `install.sh` because it is less typing, and if this were in Windows one could just type `install` to install.  I just prefer `install.sh` over `installer.sh`.