Separated lib and sample, and add tow more sample

Three sample:
main: the old sample before I separated
depend-on-host: the plugin-project depend on the host-project, so it's able to reference the whole host-project
depend-on-interface: the plugin-project use a interface for dependency instead of host-project. So that the host-project don't need to public its whole project to plugin-project.