Code Reorganize and Utilizing autotools

Previously, all header files are placed in src. This makes *src* folder
scrambled, and makes it difficult to install these headers to
/usr/include/tractor. Thus, within this fix, I moved all headers from
*src* to *tractor*, and updated CXXFLAGS in Makefile.am accordingly.
Meanwhile, I also create a *lib* folder to store all cpp files that are
common in our project, such as socket IO utils, error handling utils
(TBD), logging mechanisms (TBD)... All files in lib folder are to be
compiled to be libcommon.[so/la] and link by the main binary.

We used to write Makefile by ourselves to compile all the UT binaries,
and we only implemented the simple build/clean targets in our simple
Makefile. This is error-prone, as we're all not Makefile experts :) Thus
I decide to introduce autotools into our project, which is responsible
for the following tasks:
    1) typical three steps in GNU software installation: configure,
    make, make install
    2) All the other common make targets, clean/distclean...
    3) Portability (TBD in code)