Fix bug: Inner timers shouldn't disable outer timers if there are nested Timers.
Fix bug: Inner timers shouldn't disable outer timers if there are nested Timers.

  In TimerImpl:
    - Rename ns() function to clock() and remove original clock()
      because each Timer can get current timer value more directly.
    - Start g_Timer only if g_Timer hasn't started
    - Enable PERF_EVENT_IOC when g_Timer starts.
    - Disable PERF_EVENT_IOC in the destructor of g_Timer.
  In Timer:
    - Start g_Timer only when Timer needs to get clocks from g_Timer.
    - Timer will not stop the global timer g_Timer to avoid that inner timers
      may disable outer timer when someone uses timer nestedly.
    - Use clock() to get current clock from g_Timer to let the code become more
      readable.

skymizer/pat,skymizer/SkyPat,skymizer/pat,skymizer/SkyPat