create a model and pass it into our character list

I'm not happy with how we've installed EF6/SQLite into yet another
project - might want to look at that later. On the other hand, not
sharing repository implementations is kind of nice I think.
Extract some methods here

need to separate out controller behaviour vs implementation details -
latter might go into a base class soon