Add foreign key from Transfer to LineItemOptions

This allows a "choice" of line item options to be specified along with
each transfer (for example, different shirt sizes or meal types).
Modify accounting controller to consider line item options

The get_preferences(), set_preferences(), and apply_preferences() methods
have an informal I/O format of "tuples of human-readable information about
the transfers you have/want."  Along those lines, this format has been
extended by adding a 4th element to the tuple, which is the ID of a
LineItemOptions associated with the item (or None).

There is some added logic to properly determine the dollar amount
according to the transfer.  If a dollar amount is specified in the input,
that is used (overridding both the line item type, and any chosen line
item options).  If a LineItemOptions ID is provied, its dollar amount is
used (overriding the line item type).  Otherwise the dollar amount is
copied from the line item type.
Update extra cost module to support line item options

This is mostly just synchronizing it with the updated interface to the
accounting controller (see previous commit).

An options_cost_range property has been added to LineItemType in order to
summarize the range of potential costs for a line item.
Add proper display of cost range for line item types with options
Rename Transfer.options foreign key to option
Fix if statements that treated a dollar amount as boolean
Fix overly verbose Transfer creation statements
Rename LineItemChoies.options_str to option_choices and add docstring
Rename 'cost' field in MultiSelectCostItem to 'option' for clarity
Fix a lingering reference to LineItemType.options_str
Switch from using an ID (or None) to an object (or None) in create()

I guess there was a reason for having that extra code before, it was
just a bit too verbose.  I think this is the most concise approach
that works.
Make option choices show up in Transfer admin list
Set amount explicitly in an unhandled case in set_preference()
Fix extra costs form display template
Update StudentRegTest for modified extra costs form
Merge pull request #1314 from learning-unlimited/extracosts-options

Add support for line item options