use stlport to replace libgnuc++, this remove GCCVERSION variable
Remove the timeout parameter from WelsMultipleEventsWaitSingleBlocking

All users of the function passed the value corresponding to
"infinite", and the (currently unused) unix implementation of it
only supported infinite wait as well.
Add support for using a separate "master event" in WelsMultipleEventsWait*Blocking

This allows making the WelsMultipleEventsWaitSingleBlocking
function work properly in unix, without polling. If a master
event is provided, the function first waits for a signal on
that event - once such a signal is received, it is assumed that
one of the individual events in the list have been signalled as
well. Then the function can proceed to check each of the semaphores
in the list using sem_trywait to find the first one of them that
has been signalled. Assuming that the master event is signalled
in pair with the other events, one of the sem_trywait calls
should succeed.

The same master event is also used in
WelsMultipleEventsWaitAllBlocking, to keep the semaphore values
in sync across calls to the both functions.
Use WelsMultipleEventsWaitSingleBlocking with a master event for waiting on finished threads

This allows using the same codepath for both unix and windows
for distributing new slices to code to threads.

This also improves the performance on unix - instead of waiting
for all the current threads to finish their current slice
before handing out a new slice to each of them (where the threads
that finish first will just wait instead of immediately getting
a new slice to work on), we now use the same logic as on windows.

In one setup, it improves the performance of encoding from ~920 fps
to ~950 fps, and in another setup it goes from ~390 fps to ~660 fps.
(These tests were done with the SM_ROWMB_SLICE mode, which
heavily exercises the code for distributing new slices to the
worker threads.)

The extra WelsEventSignal call on windows where it isn't strictly
necessary doesn't incur any measurable slowdown, so it is kept
without any extra ifdefs to keep the code more readable and unified.
Use WelsMultipleEventsWaitSingleBlocking within the worker thread on unix as well

This avoids using a separate thread for handling pUpdateMbListEvent
events, and later allowing using the encode exit event on unix instead
of pthread cancellation.
mv mc_neon.S to common,add MC arm code to encoder
set bAuReadyFlag to true when we meet a PPS
use temp buffer to store new arrived PPS/SPS
remove mc_neon.S from encoder
Update targets.mk files
Remove unused/undeclared arm assembly macro parameters

The SAD_VAR_16_END macro only takes 3 parameters, never 4,
and SAD_SSD_16_END never is called with more than 3 parameters
either.
Merge pull request #438 from ruil2/encoder_update

    dump file refactor
Merge pull request #439 from zhilwang/mc-arm-asm

mv mc_neon.S to common,add MC arm code to encoder
Merge pull request #435 from mstorsjo/threadlib-wait-single-unix

Make WelsMultipleEventsWaitSingleBlocking usable on unix as well
Use pExitEncodeEvent instead of thread cancellation on unix as well

This works now that we've got a suitably working implementation
of WelsMultipleEventsWaitSingleBlocking.
Remove the now unused thread cancellation support

This makes the thread library build on android - android does
not have pthread_cancel.
Merge pull request #430 from licaiguo/android-use-stlport-for-ut

use stlport to replace libgnuc++, this remove GCCVERSION variable
Enable multithreading on android
Use WelsThreadJoin on windows as well

This avoids using a separate event just for signalling that
a thread has finished running.
Merge WelsThreadDestroy into WelsThreadJoin

Now calling WelsThreadJoin is enough to finish and clean up
the thread on all platforms.

This unifies the thread cleanup code between windows and unix.

Now all of the threading code should use the exact same codepaths
between windows and unix.