Support compilation for individual arch

A different approach for Pull request #24
Summary: 
- use a function pointer for init_arch to dispatch dynamically
- each arch requires a include.h file to include necessary files and define their initialization for cs_open
- each arch need to add his init_arch to the common array at runtime ( using `((constructor))` )