Major update to ECOS, hence version change to 1.0.3

This commit introduces a completely new way how ECOS handles the exit/stopping
conditions internally. The goal is to always return soemthing useful to the user.

To this end, and for tighter integration with CVX, there are now two precision
levels, that can also be set via the MEX interface. If the standard precision
cannot be reached and ECOS determines

   (i) a numerically unstable search direction, or
  (ii) that the maximum number of iterations have been reached, or
 (iii) that some multipliers/slacks are leaving the cone due to numerics,

ECOS will restore the best iterate seen so far. This, in >60'000 test cases,
always produced sufficiently good results for practice, and most importantly,
no MAXIT or NUMERICAL exitflags were encountered any more, i.e. version
1.0.3 should be the by far most stable and accurate ECOS yet.

To determine that an iterate is better than another previously stored iterate,
the function compareStatistics() in ecos.c has been introduced. Besides obvious
tests, e.g. for primal and dual feasibility measures, there are some heuristics
on when to accept an iterate as being better than the other. This might have
to be tuned in as we go, so please do report non-converging problems or add them
as test cases to the C testing framework.