posix:pthread c++11 changed pthread_self() to return thread IDs > 0

the changes move the returned `pthread_t` value of `pthread_self()` `+1` and reduces the given ID when accessing `pthread_sched_threads[]`.

This change is necessary for using `.join()` on a c++11 `std::thread`. 
If `pthread_self()` returns a 0 the `libstdc++` throws an exception, due to the 0 value equals `thread::id of a non-executing thread`