Fix validate_slength, arg.length should be args[0].length

During a puppet run an error will be thrown and a puppet run will fail completely (when using validate_slength):
undefined local variable or method `arg' for #<Puppet::Parser::Scope:0x7f243c236948>
minor corrections to delete_values()
Merge pull request #169 from hdeheer/patch-1

Fix validate_slength, arg.length should be args[0].length
(maint) Remove unneeded parens around exceptions
(maint) Explicitly unpack validate_slength args
(maint) reword error messages for validate_slength
(maint) clean up validate_slength argument validation
(maint) collapse String/Array validation into shared lambda
(maint) reindent case statement to match standard indentation
(maint) refactor validate_slength tests
(maint) Validate input argument in a single location
Merge branch 'maint-refactor_validate_slength'
Merge pull request #170 from ptomulik/fix_delete_values

minor corrections to delete_values()
small fix to delete_values_spec.rb and README.markdown
Merge pull request #172 from ptomulik/fix/delete_xxx_spec

small fix to delete_values_spec.rb and README.markdown
(maint) Fix location_for helper method

Without this patch the location_for helper method in the Gemfile
incorrectly assumes the mdata variable has a value.  This patch
addresses the problem by explicitly binding the regular expression match
results to the mdata variable to ensure it has a value when accessed by
index.
(maint) Fix failing spec test with Puppet 3.3.0-rc2

Without this patch the stdlib spec tests are failing against recent
versions of Puppet.  The root cause of this problem is a change in the
behavior of create_resources in Puppet 6baa57b.  The change in behavior
caused the :name key to be omitted from the hash returned by
Puppet::Parser::Resource#to_hash which in turn is causing the test
failure.

This patch addresses the problem by updating the test to match the
description of the example.  Only the attribute :ensure is checked
instead of the full hash itself.
Update file_line resource to support 'after'.

When adding new lines to a file the 'after' option can be useful
when you need to insert file lines into the middle of a file.

This is particularly helpful when using file_line with sectioned
config files.

NOTE: the after option only works when adding new lines. If you are
updating an existing (matched) line it will simply modify it in place.
This assumes it was in the right place to begin with.
(maint) Improve the tests and readability of file_line

Without this patch the implementation of the file_line provider is a bit
convoluted with respect to the newly introduced "after" parameter.

This patch addresses the problem by separating out the concerns of each
case into their own methods of handling the behavior with the match
parameter, handling the behavior with the after parameter, or simply
appending the line.
(maint) fix RST formatting of has_interface_with code examples