Add re-ranking feature

The re-ranking options, interface, skeleton class and process
Add batch re-ranking evaluation
Add MMR process, using random similarity for now

TODO: comput similarity between documents.
Add setter and getter for totalWords variable
Update MMR re-ranking and add batch GetDocTermStats

fix bug with negative score
Add PortfolioReranker and Update BacthGetDocTermStats
Roll back unnecessary changes
Add MAP switch in batch summary, false by default
Redesign the -r and -br arguments, using -m to specify the underlying model
fix batchgetdoc