* add headers for generic arch implementation
* restructure the arch-dependent file, better separation
* populate generic architecture for templating
* more cleaning and refactoring to keep things stay decoupled
* allow architectural specific code to override klib functions.
* merge lib/ into klibc for uniformity
* add x86 specific crc32 implementation, require SSE4 extension
* rename isr_param to more general hart_state
* isolate: direct reference of memeber inside hart_state
* isolate the hstate dumping part of trace.h.
* general clean up
* decouple gdbstub from architectual code.
* fix the trace_log missing component name
* add reg_t to shadow the explicit typed register value
* rename hart_change_execution to hart_flow_redirect