Simulation statistics

Added several statistics about the model+controller's performance.
Now sim.Run outputs a struct that includes several statistics about the
simulation performance including: X, T, Torques, the stance foot's
position, steps taken, end result, min/max slope and convergence.

In Simulation.m, removed old commented code after re-coding it for the
new sim.

Also added additional conditions for stopping the simulation when the
robot falls, takes a very very small step or hits the ground while the
leg is still shortened.
Simulation Poincare

Worked on calculating the numerical poincare map.

If EndCond = 2, after convergence the IC and period are stored inside
the simulation object. Then sim.Poincare() can be called.
Alternatively, IClimCyc and Period can be set externally when the limit
cycle and period are already known.

The EndCond = 1 type of simulation was implemented. Here the robot needs
to walk a number on steps on the final slope, i.e., after the
inclination stops changing, if that's the case.

SimOut was merged with sim.End to create sim.Out, a single variable that
holds all the statistics.
Simulation bugs + period

Corrected a bug where the info in sim was corrupted by PMsim. Now PMsim
is a shallow copy of sim (deriving from matlab.mixin.Copyable class).

Added a simple code to calculate the gait's period.
Added TestSim (a copy of AlexSim), to stop bugging Alex with my tests :)
Small bug

Now that sim.Period includes the number of steps for a complete cycle
and the step time, I used sim.Period(1) instead of sim.Period in
Poincare.m

NOTE: The period calculated is for the last step only. If the gait is
multi-period, a new simulation should be ran to get the IC at each step
and the period of each step in a full cycle.
Caught a bug for the EndCond = 1 sim type

When calculating the poincare map of higher periods it would keep
walking because Steps2Slope kept getting updated after each step.
Also "merged" Test.m into TestSim.m