threads: split the recursive mutex and non-recurive mutex
In the end the recursion values don't need to be atomic. And it's not stored in non-recursive mutex anymore.
This allows spotting odd calls like condition wait with a recursive mutex. For now it's only allowed if the mutex is not recursively locked (probably how it happens).
This split can also allow not using the owner field in release build for non-recursive muteces. It would only be needed for recursive muteces that do need to know if they are locked or not to handle the recursion.
vlc_mutex_trylock()
is gone as we can do without it.