Early beta of genome analysis after evolution

* CheckGenome / Decode
Removed mergetool garbage. Don't know how it got there...

* Analyze
Added a function that runs the simulation with the selected genome over
a range of slopes, until the robot fails to walk. It then calculates
different performance parameters such as the limit cycle, ZMP, power
required, etc.

* MOOGA
Added Find function to search for genomes that fit certain fitness
requirements
Transferred the "impulse clean-up" function to Simulation

* Poincare
Added two lines to reset the controller and apply the effects of ground
contact. Maybe this will fix the BUG where the robot converges and yet
the eigenvalues come back larger than 1.

* Simulation/Render
Small changes to how the window size is changed.

* GAfine
Set PMFull to 1
More analysis and bug catching

* Analyze
Solved a bug caused when only a 0 slope is loaded from a saved file.
Moved most of the code to 2 functions: "WalkOnSlope" and
"SavePerformance".
Now 2 attempts are made for each slope, starting from the previous slope
and starting from a 0 slope. Also, 3 more slopes are tried after the
first failed one (so far this hasn't helped to find more stable slopes).
Also, slopes are now increased by base_d instead of 1, in preparation
for finer analysis.

* MOOGA/Find
Added the possibility of searching for fit genomes on previous
generations.

* MOOGA/Run -> Simulation/Render
Moved the cla command for clearing previous renders

* Simulation/Render
Changed the way in which the figure size/position is changed so it
doesn't reset when the user modifies it, but still works the first time.

* Simulation/Run
Caught a bug caused when the "Check clearance" statement is triggered (a
ground contact trying to slip through the cracks) and the impulsive
controller was not activated.

* Simulation/Simulation
Caught a bug when separating the impulsive torques, where lastPhi needed
to be updated before the first call to Controller.Adaptation.
Also improved the way in which impulsive torques are detected and
separated (MAY NEED MORE TESTING).
Poincare+ZMP+more bugs and new MOOGA options

* Controller
The Reset method can now reset the switches to a certain CPG phase. This
caused some one of the bugs with calculating the Poincare map.
Also, the adaptation function now receives the slope directly instead of
calculating it from the leg angles. This should also fix another bug
with calculating ZMP since the slope would change when the IC where
disturbed.

* Analyze
Added some formatting to the results to show "OK" or "FAILED" in green
and red after each run. Also applied the controller adaptation changes.

* MOOGA
Added an option to add new random genes to each generation.
Added a case to the Find method that shows the max fitness when called
without arguments and improved the way that output is displayed.

* MOOGA/Plot
Added some colors and moved the strsplit method to a separate file.

* MOOGA/Run
Corrected a bug with the detection of which fitness is being calculated
(uses strfind now to look for specific names).
Added post-processing for ZMPFit to "normalize" the fitness by
multiplying it by the largest slope attained (up or down).

* Simulation/Run
In order to process the Torques after running the different simulations,
a new variable "Slopes" was added to store the current Slope at each
moment.

* Simulation
Worked on improving the GetCleanTorques method.

* GAfine
Modified the code so that it can run with zero ankle torques
(under-actuated).
New slope fitness functions and some bug zapping

Commented out some of the "debugging" messages that I've been ignoring
for the past week anyway.

* Analyze
Corrected some bugs and added a code to skip the second attempt when the
first ran out of time (didn't fall or converge).
Moved most of the WalkOnSlope function to a method in Simulation.

* MOOGA - Fitness functions
Distance travelled is now calculated based on Sim.Out.SuppPos for all
fitness functions (except NrgEffFit).
Added a SlopeFit (Up/Down) function that replaces the old Up/Downhill
function. In this case the slope is increased gradually as well but
after each increase the robot is required to "show convergence" before
increasing the slope further.

* CheckConvergence
Added some code to check sooner if the simulation is converging (rather
than waiting until diff<minDiff). With "doGoNoGo" set to 1, the
simulation can be extended while converging to allow it to fully
converge (up to 3 times the original simulation time). With "doGoNoGo"
set to 2, the simulation can be stopped ahead of time if it shows that
it's converging/diverging.

* Simulation/Run
Commented out the "double-check" for ground clearance which seemed to be
causing more troubles than it solved.
T is now stored as sim.Out.T during the run (so it can be used by
CheckConvergence).

* Simulation
Added a JoinOuts method that allows to join the outputs from different
simulations (useful for ZMPFit and SlopeFit).
Updated GetCleanPulses to work properly with the new JoinOuts method.

* Terrain
Corrected the display bug in Terrain.