add a type/provider for git::config

which can *actually* determine the user home. unlike inline_template()

this is a w.i.p.
reformat nicely, add "unless" for idempotency

remove finaly ',' so this will work on ruby 1.8.7
and reformat it nicely. unfortunately, it doesn't work yet...

    igalic@levix ~ % puppet apply --trace -e " git_config { 'alias.switch=checkout': } "
    Notice: Compiled catalog for levix.box in environment production in 0.03 seconds
    Error: Got nil value for name
    /home/igalic/.gem/ruby/2.1.2/gems/puppet-3.6.2/lib/puppet/type.rb:646:in `[]='
    /home/igalic/.gem/ruby/2.1.2/gems/puppet-3.6.2/lib/puppet/type.rb:2224:in `set_name'
    /home/igalic/.gem/ruby/2.1.2/gems/puppet-3.6.2/lib/puppet/type.rb:2196:in `initialize'
    /home/igalic/.gem/ruby/2.1.2/gems/puppet-3.6.2/lib/puppet/resource.rb:314:in `new'
    ...
ensure we fill the `name´ also

when using title_patterns, make sure we also fill the name.
for this purpuse, we add an extra set of ()s around the pattern.

we move validation into the type, out of the property(:value). a note of
a bit of a ruby quirk:

   :absent =~ /.+/
   => 0
   if 0 then puts 'truth' end
   => truth

pull in documentation from git::config
replace the git::config with git_config call

retain the contract of the type (including the section.key parsing)
introduce flusing

this still doesn't seem to solve the problem that the execution actually
fails, e.g.:

  Error: /Stage[main]/Main/Git_config[merge.tool]: Could not evaluate:
  Execution of 'git config --global merge.tool 'vimdiff3'' returned 1:
strip value before comparing

the value is returned with a \n
change properties to parameters

because they are not discoverable!
Fix the type

Get rid of flush and all setters. Extract the check into insync?. Add
sync to call out the necessary bits of what used to be flush.
Merge pull request #1 from mhaskel/type

Get rid of flush and make everythign better
simplify code: no cross-calling betw type&provider

we *simply* override value and value= and be done with it.

in order to make sure that `value` actually works, we *just* have to set
all other properties it needs ;)
"identity" lambda doesn't do a thing, remove it

as the name suggests, `identity` only returns the thing itself.
since we're not using it for anything (e.g.: lower-casing, or
upper-casing, cutting down to 8 char ;), we can just as well remove it.
Update .gitignore with modulesync defaults
Add .travis.yml file with modulesync defaults
Gemfile from modulesync
DRY up the specs by moving into an each loop

This moves all the common attributes into a loop for different versions. If you wanted to go really hardcore on coverage, you could change the array into something like:

```
versions = Array ('1.6.0'..'1.7.11')
```

So you'd get this set of specs for every version in between, but I thought this was a little overkill...
Rename exec, move command to command parameter

Easier to figure out what the exec is doing, and makes the specs a little nicer.
Specs are now green...but...

It looks like the specs weren't updated when a few things changed, such as the lack of creates in the install exec. This gets things green, but I'm not sure if the manifest is actually right...
Adds spec for git::config defined type

Goes for the two standard cases:
* Defaulting to run the command as root
* Using a specified user
Merge pull request #36 from petems/add_config_spec

Adds spec for git::config defined type
Adds basic beaker test

Just tests that git package is installed for now, more complex stuff later one