type and provider for postgresql role/user

Hello again.

I've separated commits. Now here is code only for managing user/role via puppet type and provider.
Usage example:
```ruby
pg_user { 'new_user':
        ensure => present,
        password => '12345',
        superuser => true,
        connlimit => 13,
        createdb => true,
    }
```

Every parameter is automatically cheked each time agent runs, so role is up to date with manifest descriptor. 
Also I would like to mention, that my code was originally based on code from @akumria https://github.com/akumria/puppet-postgresql. But is significantly improved.

It's not 100% tested, all tests were made manually. So, it's possible there could be mistakes :(
Hope it helps.