RTC time related optimizations

Consider this changes. 

First commit removes the need to call heavy function gettime() where possible. 

The second commit optimizes time formatting in telemetry log, the new date/time string is generated only when time changes. Had some problems on sky9x because sprintf is not available. Adding `targets/sky9x/syscalls.c` does not resolve this problem. I get:
```
/home/pub/android/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: .text has both ordered [`.ARM.exidx' in /home/pub/android/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv7-m/libgcc.a(_divdi3.o)] and unordered [`.text._realloc_r' in /home/pub/android/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv7-m/libc.a(lib_a-reallocr.o)] sections
/home/pub/android/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [opentx.elf] Error 1
```


Uff, really, I tought it was using rtcTimeString directly. If that is the case then the other variant that is now only for sky9x board should be used for all arm boards. At least gettime() is optimized.