Added optional provider defaults to base_backage and extension classes

Well, I'm not exactly sure why PR #27 seemed to end up deleting all of the code from your branch, but just in case you need this again, I'm creating a PR based off of an actual feature branch instead of my production branch.  I'm using branches named `production` for my own internal use and they aren't guaranteed to be compatible with the master. 

#### Commit Message: 

Not having `undef` as a default provider was causing errors similar to:

```
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Must pass provider to Php::Contrib::Base_package[cli]
```

Making the extension and php::contrib::base_package defines use `undef`
as a default still allows provider selection while falling back to sane
puppet defaults.