Add support for line item options

This adds a foreign key from Transfer to LineItemOptions (as suggested by Jordan in #1119) and updates the accounting controller and StudentExtraCosts module to make use of it.  You can test this by creating new line item types for a program; you can add options (each with a description and optionally a new cost value) from the admin page for the line item type.  You should see each of these options on the extra costs page in student reg, and it should remember your choices when you save and come back later.

Addresses #1119 and #1120.  However, it could be argued that more front-end work is desirable for #1120.  Also, we don't support a combination of multiple LineItemOptions choices and variable quantity (in the StudentExtraCosts module; the accounting controller should be able to handle it).

This should remain an index of ```[2]```. You didn't change the position of cost in the tuples returned by ```get_preferences```.

Or are you purposely selecting the option_id? In that case, we shouldn't be setting the initial value of ```'cost'```, it should be the initial value for ```'options_id'```.

Perhaps it would be better to use dicts in ```apply_preferences()```, ```get_preferences```, etc., and have the ```options()``` property use ```values()``` rather than ```value_list()```, etc. to prevent accidental index errors.