Add purging support to ini file

This commit adds purging to ini file native types.

Purging will only work for child providers that
implement the method: self.file_path. This is
because collecting all instances of the type (
which is a requirement for purging) is only possible
when the path of the file that is being managed
can be accessed by the class instance (in the
method self.instances.)

This commit adds the following method to the internal
of the ini_file:
- get_settings - has of all settings/values for
a given section

It also adds the following method to the section
class:
- setting_names - list of all setting names in a
section.

These methods are required for the instances method
to be able to list the values for all settings of
each section.
Merge pull request #25 from bodepd/add_purging_support

Add purging support to ini file
guard against nil indentation values

This commit is intended to resolves an issue where the indentation
value can be nil (which leads to a run time exception)

This occurrs in cases where a section is following by only one of more
comments.

The proposed fix is to guard against potential nil values where the
error occurs. This fix is idential to code used at line 125 of the same file.
Merge pull request #30 from bodepd/fix_nil_indentation

guard against nil indentation values
Added 'ini_subsetting' custom resource type
Merge pull request #29 from kbrezina/subsetting

Added 'ini_subsetting' custom resource type
fix unit test failures

the previous tests were stubbing global class instances
in a way that was causing other tests to fail.

This commit updates the tests, and introdcuces child classes which
can safely be stubbed (and more closely test the real behavior intended to
be tested here)
Merge pull request #32 from bodepd/fix_test_failures

fix unit test failures
Update Modulefile and Changelog, prepping for 0.10.0 release

This commit also adds some comments clarifying the new code
that was added to support purging.
Merge pull request #33 from bodepd/doc_update

Update Modulefile and Changelog, prepping for 0.10.0 release
Update README.markdown
Add travisfile and Gemfile

in order to automate travis-ci tests.
Merge pull request #36 from bodepd/travis_part_three

Add travisfile and Gemfile
Style fixes
Merge pull request #39 from dalen/master

Style fixes
Change constants to class variables

Because of the way that puppet's autoloader and pluginsync work,
modules on the master get loaded twice, which means that
you can't use Ruby constants at all w/o getting warning messages.

This commit changes all of the constants in `ini_file` to class
variables, which will avoid the warning messages.
Update Modulefile and CHANGELOG for 0.10.1 release
Merge pull request #44 from cprice-puppet/maint/master/change-constants-to-class-vars

Maint/master/change constants to class vars
Better handling of quotes for subsettings

Prior to this commit, the `ini_subsetting` type assumed that
all of the settings strings were quoted, and always wrote
out the modified value with double-quotes around it.

This commit adds tests for the case where the original setting
is not quoted, and intelligently writes the modified setting
with the same quote character (or lack thereof) that the
original setting used.
Update Modulefile and Changelog for 0.10.2 release