New class PETScWallClockTimer and Modifications in classes of RunTime and CPUTime

As Dimm suggested. I subtracted this PR from  #487 specially for classes  of  ``PETScWallClockTimer``, ``RunTime``, and ``CPUTime``. With the modifications in ``RunTime`` and ``CPUTime``, member ``stop()`` was removed. @TomFischer and @endJunction ,please take a look.

PR #487 will be closed temporarily due to the ``reset node ID`` issue, and it will be reopened once a FEM (say for a simple elliptic problem ) is completed in  the official repository. 
I would keep ``GS_USE_PETSC`` and ``GS_USE_MPI`` be separative.