Per Redmine issue #2480, restrict access to the bulk upload pages to users
having at least creator privileges.
Show the Bulk Upload link only to users who can access it (related to RM #2480).
Adapted tests to changes in the BulkUploadDataSet model.
Made all BulkUploadController tests pending until they are adapted to work with new access restrictions to the bulk upload pages.
Added target specs for relaxed heading matching to program against.
Made requirements for CSV file headers less strict: allow leading and trailing
space, and ignore case for "fixed" headings.  The addresses part of redmine
issue #2493.
Removed 'pending' status of tests for case and whitespace-sensitivity of headers.
Add testing of fuzzy matching of data references during bulk upload.
Added tests to ensure that fuzzy matching works with validation methods.
Rewrote methods exising_*() that try to find matches for references to existing
data to use fuzzy, non-strict matching (c.f. Redmine issue #2493); also, they
now raise an exception if the match doesn't exist or isn't unique.

Use the existing_treatment?() method in validate_csv_data in place of parallel
code.

Transparent changes: variable renamings, elimination of unused code.
Fixed a bug whereby rounding values weren't getting stored in the session in
action 'confirm_data' if no other global values were passed.
Added new exception classes for reference-matching methods (such as
existing_site?), and raise them in those methods instead of generic
StandardError exceptions.  Now that these methods raise exceptions when a
reference is not found instead of returning nil, update 'validate_csv_data' to
use them.

In the 'get_upload_*' methods, use normalized values and rely on all references
existing (since they are never used until after validation has been done).

In 'get_upload_treatments', return information about the associated citation and
fix a bug whereby the first treatment matching a given treatment name is
returned even if it isn't associated with the correct citation.

'existing_treatment?' now returns the first treatment with a matching name if a
citation_id is not supplied.  This can be used for preliminary validation before
a citation has been chosen.

'existing_citation' now gracefully handles blank or invalid year values.
Finished making matching of citation authors case-insensitive.
Changed test of get_upload_treatments to match change to its expected return value.
Fixed get_upload_treatments to work in the case where the treatment is specified interactively.
Deleted extraneous blank line from file fixture.
In bulk_upload/confirm_data view: Changes to conform to changes in the format of
@upload_treatments.  Also, we now display the author of the citation
corresponding to each treatment listed.