Tweak RNI plot
Modify reproduction mechanism to use free energy

Use energy dissipated as a result of death and travel to partially fuel
newly born agents, instead of taking all of it solely form the parents.
This serves two purposes:

- Energy is not permanently lost to the environment, which may prevent
  premature stagnation in cases when the energy loss is a bottleneck

- Parents are less burdened by their offspring, so good solutions might
  have a chance to reproduce more
Randomize agent behaviour

Instead of deterministically choosing reproduction whenever possible,
make agent choose randomly between available actions.
Add tie breaking mechanism

To prevent stagnation due to abundance of "grandmaster draws" between
non-dominated solutions, modify duel logic to take an analogue of
NSGA's crowding distance into account and prefer 'lone' solutions.
Move configuration parameters to separate file
Remove redundant set_metadata() calls

As all the plots have redraw() method following the same pattern:

1. Draw bunch of stuff

2. Call self.set_metadata()

plots.py is refactored to call it in just one place - base class for all
the plots.
Display best HVR value on HVR plot
Fix order in AgentEnergyPlot

Move actual average energy from bottom to top (front).
Move SGA parameter values to top of file

Replace hardcoded values of SGA parameters in emas_sga.py with
variables easily visible at the top of the source file.
Add python-evaluable solution display to SGA
Add tags file to .gitignore
Make plots layout tighter
Return dummy HV value for ZDT3

Returning None makes it impossible to run GUI tests for ZDT3, hence
change the value.
Fix race condition in plot update code

Often, delay between EMAS statistics computation and plot redrawal
scheduling would cause simultaneous udpate of data and and its use by
plot. Adding read-write lock removes the issue.