(#1) nginx class design leads to dependency cycles

This change splits the installation and service responsibilities from the
nginx class into nginx::install and nginx::service classes respectively. The
reason for this change is to prevent dependency cycles when defining files
that need to require the nginx class and notify the nginx service. Note that
this change does not change the existing interfaces, so it is backward
compatible.

Closes #1