Add weight field to Story model

Add a ``weight`` field to the ``Story`` model to allow for sorting by
a generated value.  This is implemented by making ``Story`` inherit from a
new abstract model class, ``WeightedModel``.

``WeightedModel`` provides a ``get_weight`` method that is overridden to
return the current weight value.  In the case of ``Story``, this is the
``published`` date/timestamp as an epoch.

The weight field allows for sorting stories by its published date/time while
taking into account the published date/time of connected stories. This
implementation uses signals to set the weight field to either the date the
story was published, or the date of the most recently published connected
story.

Addresses #625
Sort lates * on homepage by published date

Sort the latest stories, projects and organization lists on the homepage
by published date/time instead of last updated date/time.

This gets around the problem of the latest lists being changed when an
item's ``on_homepage`` flag is changed.  For stories, the ``weight``
field is used instead of ``published`` so the sorting can reflect connected
stories as well.

Addresses #625
Additional tests for #625

Adds a test for the specific behavior described in #625. This checks that
toggling a story's ``on_homepage`` flag doesn't affect the lates stories
list.
Sort projects by published date

In the Project list view, sort the projects in reverse chronological order
by their published date/timestamp instead of the last-edited date/timestamp.

This avoids the issue described in #625 where the toggling the ``on_homepage``
field updates the ``last_edited`` field and changes the sort order.