Fix '} else {' indenting

Thanks @rlpowell!

Closes #18
Properly indent arrays of hashes

Closes #2
Update for Puppet 3.x
Fix highlighting of regexes containing escaped forward-slashes

This changes regular expression matching from "sy match" to "sy region",
using the "skip=" to prevent escaped forward-slashes from breaking
things.  It also creates a new group, puppetRegex.
Extend regex highlighting to match additional Regexp features

This extends the regular expression syntax matching to highlight
delimiters, options and other features from the Ruby Regexp class.
Highlighting features like this helps to break up long expressions,
making them more readable.

This also adds similar highlighting for Ruby 2.0 Regexp features, such
as named sub-expressions, lookbehinds and the interpolation 'o' option.
However, as of Puppet 2.3, Ruby 2.0 is unsupported so those matches are
commented out.
Allow comments in class parameter list
add contains function for puppet 3.4.x

Conflicts:
	syntax/puppet.vim
Don't indent on ordering arrow

The current indention will indent the second resource when ordering arrow is used.

file {'somefile':
    ...
} ->

package { 'mycoolpackage':
    ...
}
should be left as is
Rewrote indentation logic so that it preserves cursor position

This is taken from https://gist.github.com/tpope/287147 with modifications to
the regular expressions.
Make it possible to turn aligning off

Conflicts:
	README.md
Include Puppetfile in ftdetect

Allows Puppetfile to be auto-detected by vim as ft=ruby
Remove range in ftdetect
contain, not contains is the keyword

Conflicts:
	syntax/puppet.vim