Manual merge of GDS Verify changes to GDS Ops

GDS Verify use a fork of the graphite module. It would be beter of to
use the GDS Operations puppet module and this commit is the first
attempt to add the specific features used in the GDS Verify module.

The features namely are:
 - Ability to specify the user used to run the processes
 - Install from Debian package

To manage user/group permission this commit uses Exec instead of
File resource, simply because the graphite directory can grow very large,
and managing large directories with Puppet can lead to memory starvation.
The exec will use xargs and parralise chmod, so even for large directories
it should run pretty quickly.
Fix lint and parser issues
Move user and group defaults to params.pp
Add docmentation to Class ::graphite

Additonal parameters added to the class, added documnetaion for the
parameters.
Fix params.pp

Syntax errors
Updated Rspec tests

Rspec tests updated to include tests for added features:

- Managed Graphite user and group
- Install from OS package, using Package resource.
Apply ownership changes to webapp dir

Change of ownership should also be applied to webapps directory. Also as
part of this commit, I have used var $root_dir instead of hardcoded
path.
Fix exec command to change ownership

Explicitly specify webapps dir
Simplify out of scope var lookups for config.pp

Lookup out of scope vars in config.pp rather than in the template for
user and group. This simplifies support for multiple versions of Puppet,
making the variable lookup local in the template.
Correctly update carbon.conf file

Class parameters exist to modify carbon cache file, that was not
correctly being set. Also included rspec test to make sure this happens.
Remove deprecation warnings

Correctly append '@' to variable names in carbon.conf template
Sanitize find command

Use print0 in find command and -0 for xargs when chown'ing files and
directories. Prevent in odd characters in the file or directory name
causing any issues.
Fix pip installation path

Added options for pip to ensure that python packages are installed into
the correct location.

Using `install_args` we can pass install options to pip that will ensure
that the Python package is installed in to `root_dir`
Use the root_dir variable in initdb_cmd
Ensure graphite webapp directory is created

Also ensure that the correct permissions are set on the directory
Set path for exec resource 'set_graphite_ownership'
Fixing root_dir when installing with pip
Removing dot typo
Fixing lint issues (ignoring 80 characters)
Ignoring 80 characters lint check in a rake task