Quiet command output in various tests

Prevent output with an auto-faked migration in the `migration` command.
Ensure labels() always returns strings
Add `order` and `distinct` parameters for `DataField.*_list` methods

This allows toggling whether the results should be ordered and/or made
distinct during programmatic use.
Add __repr__ to ChoicesDict structure
Change `DataField.coded_*` methods to rely on `codes()` method

This prevents duplicate checking if the code_field is defined. Also,
this fixes a bug in coded_values which reversed items in the output
tuple.

The R and SAS exporters have been updated to reflect this change.
Add test case for supplementary fields and methods
Add support for using pre-defined model field choices

If pre-defined choices are specified, they take precedence over the
supplementary that are defined and used in the `values`, `labels`,
and `codes` (and related) methods. This is primarily to ensure
consistency of ordering and pairing of data.

Any method that requires a database lookup such as the `*_list` methods
and `search` will remain the same.

Fix #157
Remove unnecessary coercion to tuple
Merge pull request #193 from cbmi/issue-157

Add support for pre-defined model field choices