update rt_kprintf: make sure the device is in STREAM mode when used by rt_kprintf.
notification function: rt_err_t (*tx_complete)(rt_device_t dev, void
*buffer) with buffer pointer
kernel: use skip list to implement timer list

Skip list is a "random" data structure that in high possibilities it
would get O(log(N)) time complexity in inserting while the old list get
O(N). Forthermore, when set RT_TIMER_SKIP_LIST_LEVEL to 1, it will just
the same as the old double linked list, both in time and space
complexity.

Benchmarks shows that when RT_TIMER_SKIP_LIST_LEVEL is 3, the average
time of random insertion of new timer is about 2 times faster than the
old timer when there are 100 timers and 3 times faster when there are
200 timers.

However, it restores the deprecated funcion rt_system_timer_init. BSPs
must invoke it upon system startup.
kernel: mutex could only be released in thread context

Mutex has the idea of ownership, only the thread which owns the mutex
can release it. So rt_mutex_release could only be called in thread
context.  Add a debug guard to it.
simulator: add createdef.py to generate def file for VS

Now we can get rid off Mingw to create def file. To create def file, one
should run:

    scons --def

in the bsp/simulator.
Merge pull request #174 from grissiom/rtt-next

kernel: mutex could only be released in thread context
Merge pull request #175 from prife/simulator

simulator: add createdef.py to generate def file for VS
simulator/jffs2: remove _TIME_T_DEFINED when built by VC++

_TIME_T_DEFINED was pre-defined in order to build jffs2 with VC.
While it may cause many side effects.
Merge pull request #178 from prife/jffs2

simulator/jffs2: remove _TIME_T_DEFINED when built by VC++
Merge pull request #162 from joyhope/master

UART DMA tx_complete() with buffer information
Merge pull request #161 from aozima/pulls

make sure the device is in STREAM mode when used by rt_kprintf.
Merge pull request #173 from grissiom/new-timer

kernel: use skip list to implement timer list
finsh: refactor the control key handling

We split the history handling form the key handling. So we could handle
the direction key even if the history is disabled. As a "side effect", I
also remove the unnecessary "use_history" bit.
Merge pull request #179 from grissiom/finsh-ex

Finsh ex
kernel: timer: fix compiling bug in d59aa279c37b7
rm48x50: fix the prototype of finsh_system_init
Merge pull request #180 from grissiom/hot-fix

kernel: timer: fix compiling bug in d59aa279c37b7
rm48x50: cleanup HALCoGen code
rm48x50: add GCC support
rm48: move some asm file to libcpu