Fix behaviour of towlower(), towupper() and towctrans():

* all those functions need to return the given wc unchanged in case of
  error, not 0
* towctrans() didn't actually look at the requested transition, but 
  always acted as if _ISlower was given
Fix behaviour of localtime(), gmtime() and mktime().
    
* In case the locale backend could not be loaded, these functions (and
  their reentrant counterparts) just returned an error. So we reactivate
  parts of the BSD-/Olson-implementation in localtime_fading_out.c in
  order to use them as fallback.
* Cleanup localtime_fading_out.c (remove a lot of unused cruft).
Improve robustness of asctime() and asctime_r().

* Return NULL and set EINVAL if the given tm pointer is NULL. This 
  isn't mandated by the POSIX base specs, but it just makes sense.