Item validation can result in a wrong lowerName.

When an item is validated, its name can be automatically changed to make it unique.  We store a lowerName value for the name, but this was calculated before the name change rather than after.  Also, added a guard in createItem to avoid a description that was None and to strip whitespace from the name and description as the item is created, rather than just on validation.