fix #1652 use git submodules

fix #1652 use git submodules

You can delete your libs/ directory before checking out this branch (should avoid conflict).
after checkout: `git submodule init && git submodule update`