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.
Merge pull request #564 from kellystuard/fix-550-trace-logging

Fix for #550, including unit tests.