Add out-of-memory exception handler.

For nightly test, if we do not handle out-of-memory exception, the
information for that matrix will not show. Here we add the feature
to handle this case.
Add some more matrices for nightly test
Make changes to the way to catch the bad allocation exception.

No need to catch them locally. Instead, catching them in the main
function is good enough.
Make potential MC64 failure as an exception

In the bipartite matching algorithm, there is a place potentially
resulting in failure of MC64 due to the inaccuracy of floating-point
number. Handle this potential failure as an exception.
Use exceptions derived from std::runtime_error

Define spike::system_error to provide information through what() as well as
an error return code.
Add no MC64 option for nightly test.

This version follows up to add no-MC64 option for nightly test.
When this option is specified by the user, we skip MC64 reordering.
Cleanup option setting.
Cleanup option setting for the demo_seq program.
Obsolete the macros MIN and MAX and replace them with std::min() and std::max().
Report the actual number of partitions used.

Note that this is the smallest number of partitions over all disconnected components.
Throw a spike::system_error exception on an illegal call to spike::update().

An illegal call to spike::update() can occur if the call is made before a call to setup()
or if no reordering tracking was enabled.
Fix wrong accessor function name.
Revert "Fix wrong accessor function name."

This reverts commit 7f333ce15a7bd0b3c2370b44d7fcd51ff137e8e0.
Fix name of accessor function
Moved the macro definitions for BURST_VALUE and BURST_NEW_VALUE in common.h
Added new class strided_range to allow non-contiguous access to a thrust vector.

(this is a copy of a thrust example provided by N. Bell)
Added exception handling for zero pivot during banded matrix factorizations.

After an LU or UL factorization of a potentially partitioned banded matrix, check for
diagonal values that are below a given threshold in absolute value and throw a
system_error exception with code Zero_pivoting.
Change Precond::hasZeroPivots() to use const references to PrecVectorIterator.

Without this we get "initial value of reference to non-const must be an lvalue" warnings.
Add 'strided_range.h' to the SPIKE_HEADERS group.
Fix a bug which leads to crash in exception-handling.

In the zero-pivot handling, when we are using the variable-bandwidth
option and there are two or more partitions, in the old versions
it will crash due to access out of memory.