* fix bug optimization problem
  - stack frame of thread wasn't 8 bytes aligned
    it caused unexpected stack corruption.
  - current update fix this problem and tested -O2 option in gcc 4.86

* add interface heap diagnosis
  - to know available size of heap

* shrink size of thread header type
  - now thread requires 336 bytes for makeup its header
  - clib _reent struct is too large compared to whole thread header size

* add scheduler function 'destroy' (related to user level api thread->terminate)
  - if invoking thread is same to target, immediately routed to destroy stage
  - otherwise, just marked as 'destroyed' and handled next context switch exit

* signal is per proccess object and it's shared by multiple child threads
  - to minimize thread overhead