Fix for #550, including unit tests.

Now makes list, before returning it, if it doesn't exist. Previously
returned new, empty IEnumerable, each time.
Test was making assumptions about *type* of IEnumerable being returned.