Config setup project as a library

This PR is big but is because the name of the main library module has changed. The library was also configured to behaves like a library instead of an application. Ad4Push module has been nested in the library module. By doing that, users can easily integrate the library by importing one module.