Track results of a solver run in the context

This allows for multiple ‘results’ to be generated from a single run. For
example: the best solution, as well as the ranks matrix.

It also allows any object with access to the context to publish a new 
best solution.  This may be useful to listeners that collaborate with
external sources, e.g. the AgentListener that may pull a new best solution
from the API.
Add special accessors for the best solution
Make access thread-safe
Remove unused hash() method
Fix test text
Remove Mode from listeners
Ensure listener is only firing once at a time
Rename RanksListener to PositionsListener

Publish PositionsMatrix in the context
Merge branch 'refactor/context' into develop
Bump version to 0.11.0-SNAPSHOT
Context was not getting set properly
Only consider score >= 0 in positions range
Add some example simulation files