Clean up QuerySserver::call(...ScoreDerivative...)

@jglidden I just factored out a couple helper classes: `QuerServer::Scorer` and `QueryServer::AssignmentHypothesis`. The `AssignmentHypothesis` uses RAII [1] analogously to python context managers. There was one error in a counter, a stray `i++`.

[1] http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
fixes duplicate `i++`