TS: Rollback current step

Added TSRollBack() to rollback the current step. This feature is currently
available with arkimex, rosw, and theta methods. Tested on tutorials/ex8.c
Merge branch 'shri/ts-rollback' into shri/ts-events
Update step completion status flags in TSStep_XXX when rolling back step.
Added bouncing ball example from Matlab to test TS event feature.

Event handling mechanism not implemented yet.
Updated the bouncing ball example to include prototype code for event handling.

Added event handling code that can detect and locate the event within the time
interval that an event has occured. Once the event is detected by comparing the
sign of the event function value, its location is  found using a regular falsi method.
The event handling mimics Matlab's ODE event handling.
Use a single callback function for all events rather than seperate callback for each event.
More work on the example.

i) Check for zero crossing in positive,negative, and both directions.
ii) Run-time option for event tolerance.
Added TS_CONVERGED_EVENT.

This flag should be set when the time stepping needs to be terminated when
an event occurs.
More work on the bouncing ball example to test TS event prototype code.

i) Added support for a post event callback function.
ii) Restructured the event handling code to handle multiple events.
iii) Added a second event, number of times the ball bounces, in the example.
iv) Set the next time step after the event interval equal to the initial time step.
v) Don't see any issues without time-step adaptivity.
vi) With adaptive time-stepping, large
    time steps are taken that deteoriates the convergence to locating zero of the event
    function.
vii) The number of ball bounces can be controlled via the option "-maxbounces"
Renamed EVENT_RESYNCHRONIZE to EVENT_RESET_NEXTSTEP
Renamed EVENT flags.

EVENT_OVER -> EVENT_ZERO
EVENT_DETECTED -> EVENT_LOCATED_INTERVAL
Set max. step limit in the example when using adaptive time stepping.
Added doc for TS_CONVERGED_EVENT
Started incorporating the event interface in TS.
Modified ex21.c and tested TS event interface.
Removed TSEVENTSZEROMAX.
Added a quench front example for testing TS event interface.
Bug fixes in the example.

Fixed bug in discretization of diffusion term
Changed switching logic from 1-app->sw to app->sw.
The direction for event detection should be -1 since we seek u going below uc only.
All switches should be initialized to 1.
Bug fix to avoid hitting back-to-back event zero.
Renamed event_tol to ts_event_tol and PostEvent() to TSPostEvent()