Move all the Discovery list item modification onto the UI thread.

To try to fix a crash:

java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.
Verbose logging as a user-configurable option.
Check for nulls in ToDo.

Fixes #42
Handle missing details in the offer.

Fixes #44
Ignore more TiVo Desktop/pyTivo shares.

Fixes #45