Add support for field default values and choices

If a field specifies that it has a default value or offers some set of choices,
then its get_value() method should respect that statement. Make fields do so,
and add tests to ensure that this is the case.