Allow Scheduler Simulator to "defer dispatch" until controlled
This is needed to prevent a semaphore delete from triggering a
preempt and breaking the mutex is owner debug check. Technically
we are running the same thread until the API call returns. But from
an RTEMS internals perspective, it was preempted at the _Object_Put().
When understanding this patch, it is important to remember that the
Scheduler Simulator is single threaded and faking out RTEMS. This
is one place where RTEMS would have preempted to a thread and when
we returned to rtems_semaphore_delete(), the _Object_Put() call
would have been made by the correct thread.

Apr 27, 2014:

add --filter to specify the set of selected tests.
. parameter is a glob
. default is *.exe as it was
. it is a convenient way to select a particular test to run over and
over again while debugging it, without laboriously manipulating the
.exe's that are present (i.e. moving/deleting them)

rtems: Fix sp2038 test.
Avoid using newlib's gmtime_r call which fails with a max signed int.
Add an RTEMS specific version for 1/1/1988 to 31/12/2100.
Update sp2038 to test every day from 1/1/1988 to 31/12/2100. Only days
need be tested as the code splits the seconds based on days.

sparc: Add _CPU_Get_current_per_CPU_control()
Use register g6 for the per-CPU control of the current processor. The
register g6 is reserved for the operating system by the SPARC ABI. On
Linux register g6 is used for a similar purpose with the same method
since 1996.
The register g6 must be initialized during system startup and then must
remain unchanged.
Since the per-CPU control is used in all critical sections of the
operating system, this is a performance optimization for the operating
system core procedures. An additional benefit is that the low-level
context switch and interrupt processing code is now identical on non-SMP
and SMP configurations.

score: Add _CPU_Get_current_per_CPU_control()
Add optional method _CPU_Get_current_per_CPU_control() to obtain the
per-CPU control of the current processor.
This is optional. Not every CPU port needs this. It is only an
optional optimization variant. In case this macro is undefined, the
default implementation using the current processor index will be used.

score: Use common names for per-CPU variables
Use "cpu" for an arbitrary Per_CPU_Control variable.
Use "cpu_self" for the Per_CPU_Control of the current processor.
Use "cpu_index" for an arbitrary processor index.
Use "cpu_index_self" for the processor index of the current processor.
Use "cpu_count" for the processor count obtained via
_SMP_Get_processor_count().
Use "cpu_max" for the processor maximum obtained by
rtems_configuration_get_maximum_processors().

bsp/arm: Consistenly same handling for flushing
It is importeant to consistently apply the same handling for flushing within
level 2 and level 1 cache handling. In this case now both handling use clean and invalidate.