Add simple usage display for when I forget commands
Make DB sessions last the life of the transactions

This avoid errors where we close the session and fail
to reopen it. It makes sense to just start a session
to satisfy a request anyways
Add failure email when we can't control the sprinkler

This uses Amazon's SES service, which is assumed to
be set up correctly and not documented in this repo anywhere.
Yes I've just checked in some of my email addresses. Ignore them :)
Fix passing the right value for the timeout
Simplify logging about device availability

I'm still not sure if and how I will use this data. If
the timeouts prove good enough for most casees I may just leave them
rather than having to coordinate information across threads/mail
loop iterations. But, if that doesn't work, I'm going to want
to have an understanding of what the system is doing with my
UBW board
Add better logging to make it easier to follow threads of activity
Avoid infinite retry loop
Raise the correct error when UBW is unavailable
Add large exception handler for unexpected failures

This way we can be sure I always get an email when
we are trying to change sprinkler state
Move configuring the UBW device to when it connects

This avoids constantly configuring the device when it isn't
necessary, like every time we use it