Clean up options tests: create helper function for common "expects"; and remove unnecessary reference to "value" binding in one test.
Fix three issues with new options implementation:
Should not include the caption if the options value is null
Should allow the option text to be given by an observable and update it when the model changes without affecting selection
Should retain selection when replacing the options data with new object that have the same "value"