[environment/base] Move puppetfile to base environment

All current environment implementations support Puppetfiles and that's
unlikely to change, so the puppetfile attr_reader and creation can be
pushed into the base class.
[environment/base] Define abstract #status method
[environment/git] Implement #status method
[environment/svn] Implement #status method
[module/base] Make modules visitable
[puppetfile] Make Puppetfile visitable
[environment/base] Make environments visitable
[source/base] Make sources visitable
[deployment] Make deployments visitable