Updated to latest upstream

Looking through the various forks, yours seemed the most useful to me, so I updated it to the latest version of the upstream code, opting for the "official" virtual env code.  I also modified the `date` command used in the clock module to allow spaces in the format string, as I tend to like the current date visible as well.  Finally, I added a check at the beginning of the script to remind users that it must be run using `source` or `.` rather than directly.  That last bit I'll probably propose upstream as well, since it really ought to have been there from version zero.

Thought you might enjoy the tweaks!