Adding automatic assignment of `TodoItem` ids.

Also added new constructor useful for creating brand new items. When an `id` of `0` is passed to the item, the next available id is automatically assigned.