Add a list action.

Move the data dereference into the two actions which need it
so we don't throw in the list method which doesn't.

This isn't ideal; we use the same template as the register
calls so the available elements are returned in a nested
'result' array.