Updated the way attributes are set when a checklist is loaded.

When a checklist is loaded the attributes for added_on, include, source
and source_url are set if a value is defined in the record, otherwise
any existing value is unchanged.

The upload record field 'date_added' was renamed to 'added_on' so it
matches the database field name. This makes it easier to add data that
was previously dumped from the database.
Removed the source_external field from Checklist.

The source_external field was used to identify when records were taken from a
third-party publication. It was typically used to include a link so that
proper credit was given. For 'internal' sources, typically online databases
where the observer had given permission for the records to be used there was
usually no need to display a link. However this distinction is not always
valid. For an 'internal' source you might want to publish a link for a rare
species but not for the complete checklist. It is easier to simply include
all sources then selectively filter depending on the circumstances.

The sources are returned as a dictionary with two keys 'source' and 'url'.
The 'source' key was renamed to 'name'.
Added a custom widget to allow an 'edit' link to be displayed for inline
forms so all the of the fields can be edited.
Added photos to Entry, Checklist and Location.

Multiple photos can now be added to Entries, Checklists and Locations.
The gallery field on Checklist and Entry which was used to allow photos
from third-party plugin (mainly Wordpress related) was removed.
Extra rows in Entry inline formsets no longer show empty CharFields.

Changed the widget used to display the edit link on the EntryInlineAdminForm
to use HiddenInput so nothing is displayed for the extra rows added by the
formset manager.
Added Activity and Protocol for recording the type of visit for each checklist.

Activity is used to classify the type of visit for the checklist. The
principal use is to allow subsets of checklists to reported separately, for example,
pelagic trips or activities like bird races.

Protocol is used to identify Survey visits and describes which of the new fields
in Checklist, see next, define the parameters for the survey: distance travelled,
area covered etc. Keeping the protocol followed for a survey (or other formal
visit) makes the recordign of checklists much more flexible - a typically short-
coming of existing databases where the recorded added are always assumed to have
been gathered in a formal setting.

The new fields added to Checklist to support visits made following a specific
protocol include: duration, distance, area, range (for transects covering a
specific area). Another field relative was added for pelagic trips where the
location is specified relative to the nearest point of land.

The content field on Checklist was renamed to comment. This field was originally
intended to contain content for a published report but is not considered to be
of more general use.

There are two new fields on Location: 'area' was re-added to allow groups of locations
to be defined - giving an alternative way of grouping other than the county where
they are situated. The 'gridref' field is intended for use in surveys allowing the
coordinates to be records of a square or tetrad to be recorded other than by
specifying them in the name of the location.