User pages in the admin section

I've pulled out the merge of #270 so it can be merged with the newly-added tests all in one go.

@alastairs: I'd like an opinion on some of these, as a few of them feel like I'm testing just the implementation.
I think you're right that this is testing the implementation: it requires that the method return the value returned from the `IUserProfileRepository`. I think an alternative test might be simply to ensure that the controller calls the appropriate method on `IUserProfileRepository` with the right argument: test the delegation is appropriate rather than the implementation.