Add id field to items table in db schema
Add lists table referenced in items table to db schema

The list is currently hard-coded to "Default" and not used anywhere,
but this schema change permits future modifications
for letting the user create multiple lists
and insert and query items in a specific list.
Explicitly use UTF-8 for text files
Update dependencies
Fix package path list in setup.py
Remove builds.sr.ht script
Add form for adding new items
Use v-if/else to toggle visibility of loading msg
Extend display to multiple items
Simplify array lookup by index fallback
Add skeleton for Vue-based web app

`vue.min.js` downloaded from the vuejs.org website.
Use PATCH instead of PUT for updating items

The item doesn't get replaced wholesale; it is only certain fields that
get updated, so PATCH is more appropriate.
Bump version -> 0.5.0
Add PUT /items/<item> handler
Improve error message for bad requests
Simplify API by using GroceryList error handling

A GroceryList.get_item() method has been added to facilitate this.
Raise Lookup- not ValueError for unknown items
Add POST /items handler
Add DELETE /items/<item> handler
Use url_for() to generate resource URLs

dictify() can no longer be easily tested, since it must be done against
a running Flask app. Thus, its test has been incorporated directly into
the `get_item` test; and the `index` test now delegates to `get_item`.