Add Item.get.

This mimics the behavior of dict.get.  It's particularly useful for
contexts where (1) None is an acceptable "key does not exist" value and
(2) we don't want to do a bunch of if key in item checks.
Add a test for Item.get.

Because working with tests that do filesystem operations is really
awkward, this commit also introduces a prepare_data_directory keyword
argument on Item's constructor.  When it is False, Item will not prepare
a data directory.
Merge branch 'yipdw-item-get' into development
item.py: Fix Attribute 'finished' defined outside __init__
Merge branch 'development'
Bump version 0.4