Improve the code style of the tests

- use nose.tools.assert_equal rather than self.assertEqual
- expand the expected output dictionaries to make them easier to read
Test that we get data type|group *names* not ids
Replace serialize library, do it manually

After discussion it turns out it's better to use json.dumps on a
manually-built OrderedDict based on fields in the model.
Allow filtering with data_group or data_group

Because we're a friendly, helpful API. Includes tests.