Set history_user automatically using middleware

This adds an optional feature to populate `history_user` on historical models using middleware to retrieve the request object.

@treyhunner, @mauricioabreu I think this should be an acceptable implimentation of feature request #25. It probably could use a few tests around the new `get_history_user` method, and the documentation could be clearer.