Makefile: Rewrite the Makefile

Use implicit rules.
Declare correct dependencies.
Add targets for 'install' and 'clean'.
Makefile: Build and install libply.so
Makefile: Support out-of-source builds
Makefile: Place all Makefile options into clearly documented block
Makefile: Document common ways to build and install