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
Merge pull request #45 from cprice-puppet/bug/master/better-handling-of-quotes-for-subsettings

Bug/master/better handling of quotes for subsettings
Fix bug in subsetting handling for new settings

Our new state variable `@quote_char` was not being initialized
property if you used `ini_subsetting` for a setting that did
not yet exist.  This fixes that bug.
Update CHANGELOG and Modulefile for 0.10.3 release
Merge pull request #47 from cprice-puppet/bug/master/better-handling-of-quotes-for-subsettings

Bug/master/better handling of quotes for subsettings
Allow empty values

It is a legitimate use case to set empty values; to override a
default when an empty value is acceptable for instance. This patch
changes the regex in three ways: it 1) removes the requirement for
a non-whitespace terminator on a setting value, 2) makes the value
match non-greedy so that the \s*$ at the end can catch the newline
and 3) changes the \s*=\s* to [ \t]*=[ \t]* because we don't want
that to capture *any* whitespace (like a newline).
Merge pull request #52 from otherwiseguy/master

Properly handle empty values
Tweak the Gemfile to be better for development, add a Rakefile.
support for whitespaces in settings names (need for smb.conf)

smb.conf contains settings names with white spaces, for example

[globel]
server role = active directory domain controller
check password script = Disable
Merge pull request #53 from apenney/51-ivanov-aleksey

Replacement for #51
Test only against the versions we want.
Merge pull request #54 from apenney/travis

Test only against the versions we want.
add a type to test inheriting from ini_setting

In order to test with rspec-puppet we need to set up the fixtures, and test via
rake spec, so we change that too
add a test for creating subclassed instances
Fix the sample usage in the README

If you follow the example in the README you may not have implemented the
:key_value_separator parameter in your type, and you get the wonderful failure
case:

   Puppet::Error: Invalid parameter key_val_separator(:key_val_separator)

This change looks first, and if the user hasn't specified that attribute in
their type in their type, it falls back to '='
actually write a file in spec/fixtures/tmp

This is useful for testing with puppet apply