Use an augeasprovider type as base

This PR turns the `augeasproviders` lib into a type (`augeasprovider`) and a provider (`default`).

This will allow to easily ship Augeas-based providers outside of the module, and split the module.

This change breaks the current public API by changing the way to include the lib. For this reason, we might want to release a last 1.x release before we turn this into the 2.x branch.