Added puppet function snippets
Merge remote-tracking branch 'upstream/master' into feature/function_snippets

Conflicts:
	UltiSnips/puppet.snippets
Merge pull request #82 from pjfoley/feature/function_snippets

Added Puppet Function Snippets
Fixed edge case in function for base class name

In the instance of calling the class snippet within a puppet file
located in /home/pjfoley/puppet/modules/profile/manifests/init.pp

I would expect the return value to be "profile", it currently returns
"profile::"

The extra "::" is a bug and puppet compilation fails with the message
"Syntax error at ':'
Fixed edge case in function for base class name

In the instance of calling the class snippet within a puppet file
located in /home/pjfoley/puppet/modules/profile/manifests/init.pp

I would expect the return value to be "profile", it currently returns
"profile::"

The extra "::" is a bug and puppet compilation fails with the message
"Syntax error at ':'
Merge branch 'hotfix/module_name' into hotfix/init_edge_case

Conflicts:
	UltiSnips/puppet.snippets
Fixed edge case with multiple init directories

In the instance of calling the class snippet within a puppet file
located in
/home/pjfoley/puppet/modules/profile/manifests/server/init/init.pp

I would expect the return value to be "profile::server::init", it
currently returns "profile::server" which is missing a module path
layer.
Changed default returns to use a variable

Variable set with sane default
Alias python lib function

Using a local alias to make code more readable
Introduce short var names for split path
Updated module name function to just return base

Some puppet locations just need the module basename and not the full
path.