Make book and location content sortable

* Bookworm/Author.pm:
   + (post_web_update):  Use present_sorted_content for the books.
* Bookworm/Location.pm:
   + (post_web_update):  Present locations and books sortably (and
     independently) using the Modframe present_sorted_content method.
   + (ajax_sort_content):  Support for AJAX content sorting.
* Bookworm/Book.pm:
   + (compare_authors_arrays):  Pass this as the comparator for the
     authors field for locations, so that they sort properly.
* cgi/ajax-author-sort.cgi (added), cgi/web-files.tbl:
   + Page for AJAX update of an author's books.
* cgi/ajax-location-sort.cgi (added):
   + Page for AJAX content sorting.
Bookworm Release 0.2

* makefile:
   + Update the RELEASE macro.
* database/schema.sql:
   + Merge schema changes for release 0.2 to change book.category and
     add location.bg_color.
Show n_total_books in location search results

* Bookworm/Location.pm:
   + (default_display_columns):  Show n_total_books in search results.
     This may turn out to be too expensive, but we'll try it for now.
Show book counts in the location tree

* Bookworm/Location.pm:
   + (display_info):  Show the number of books, in addition to what info
     the superclass provides.
Improve the authorship default role

* Bookworm/Book/web_add_author.pm:
   + (web_add_author):  If there is already at least one author, and
     they all have the same role, then make that the default.
* database/db-recipes.sql:
   + Add a "delete a book" recipe.
* Bookworm/Base/web_home_page.pm:
   + (web_home_page):  Add a "reported total weight" summary.
*** Inherited location background colors ***
   From the loc-bg-color-1 branch.
* database/schema_changes-0.2.sql:
   + Add a location.bg_color column.
* Bookworm/Location.pm:
   + Add a bg_color database slot.
   + (html_link):  Wrap a span with our background color, if we don't
     inherit the browser background.
   + (web_update):  Colorize the heading.
   + (pretty_name):  Supply a default for when we're being created, so
     escapeHTML doesn't complain about an undefined heading string.
* test/location-1.pl:
   + Test background color inheritance.
* cgi/location.cgi:
   + Add user documentation for the "Background:" field.
* makefile:
   + We might as well make this depend officially on Modframe.
* Bookworm/Location.pm:
   + (validate):  Require that locations have a name, and fix the
     grammar of the parent location error message.
* test/location-1.pl:
   + Add two creation attempts that should fail.
* test/Bookworm/Test.pm:
   + Die if $ENV{HARNESS_EXTRA_LIBS} is not true.
* Bookworm/Authorship.pm:
   + (type_pretty_name):  We need one of these, lest the tooltip say
     "Visit this book author map" for the link to the object page.
*** Add a Bookworm test suite ***
   From the start-test-1 branch.
* makefile:
   + (test, test-database):  New test suite.
* database/schema.sql:
   + It turns out we need to have the audit_event, session, and staff
     tables present in the schema for test-install-database.pl.
   + Initialize the parent_location_id of the root to be zero so that
     check-foreign-keys.pl doesn't think that it is "dangling."
* test/Bookworm/Test.pm (added):
   + Test class with Bookworm object support, built on ModGen::Test.
* test/location-1.pl (added):
   + Test script for locations.
* test/author-1.pl (added):
   + Test creating and updating an author.
* test/book-1.pl (added), test/book-2.pl (added):
* test/book-3.pl (added):
   + Test scripts for books.
* test/publisher-1.pl (added):
   + Test adding and updating publishers (which is not hard).
* test/check-foreign-keys.pl (added):
   + Add database foreign key consistency checks.
* Bookworm/Author.pm:
   + ($book_columns):  Bug fix:  use self_link instead of
     return_address_link for the book, so that we get "Visit this book"
     instead of "Use this book" as the tooltip.
* Bookworm/Location.pm:
   + (web_update):  Bug fix:  Don't do handle_container_selection here;
     the main method calls it, which makes "Invert selected" do nothing.
* cgi/location-tree.cgi:
   + Pass cookie_name instead of kind to web_hierarchical_browser.
* cgi/web-files.tbl:
   + We no longer need ajax-tree.cgi.
* Bookworm/Book.pm:
   + (validate):  Don't allow books that don't have a location.
* cgi/book.cgi:
   + Document this requirement.
* Bookworm/Location.pm:
   + Increase the description textarea size to 8 rows by 80 columns.
* database/schema_changes-0.2.sql:
   + Add "reference" to the book.category enum in the schema.
* Bookworm/Book.pm:
   + Add "reference" to the "category" enumeration for the UI.
* Bookworm/Book.pm:
   + (web_update_authorship):  Give this page a useful title.