Use one Augeas handler

This PR aims to limit the amount of Augeas handlers used per resource.

This is the first step to implement what I described in https://groups.google.com/d/msg/puppet-dev/kWpTdXSP-L4/LeGg3MTjqGsJ .

## Notes

### Closing the shared Augeas handler
Once we have a shared Augeas handler, there is a need to close it properly. In Puppet 3.4.0, a new provider method was added allowing to do this per resource type: `post_resource_eval`. For this reason, this patchset keeps the current behavior for Puppet < 3.4.0 and allows to use a shared Augeas handler starting with Puppet 3.4.0, and closing the handler in the `post_resource_eval` method.

### Autosave
This PR makes `autosave` (and hence `augopen!`) obsolete, as `augopen!` and `augopen` now behave the same way, since `augsave!` is only called in `flush` when using Puppet >= 3.4.0. It is recommended to keep using them anyway for compatibility purposes with Puppet < 3.4.0.

### Prefetch
Once the Augeas handler is fully shared, it means that when a resource parses a file, the file doesn't need to be parsed again and its tree stays in memory for the whole Puppet run. I believe that makes prefetch moot, since the Augeas tree works as a prefetched state of the file. Any new resource affecting the same file will simply reuse the tree in memory, without a need to parse the file again.

## Base

This PR was rebased on top of #85, so it will get simpler once #85 is merged.

## Results

TO BE UPDATED with newer patchset…

### Number of open files
Without this series of patches, when applying 26 changes in a Puppet file:
* The file is open 26 times for writing
* The file is open 104 times for reading

With this series of patches, when applying the same 26 changes:
* The file is open 26 times for writing
* The file is open 27 times for reading  (1 initial read + 1 read before each write)

I don't think it's possible to reduce the amount of actions without impacting the transactional aspect of resource management. @peiriannydd would that be good enough for you? Could you try this series of patches and give some feedback regarding the amount of file openings you witnessed in production?

### Application time
The patchset also improves the execution time:
* without it, the 26 changes apply on my machine in 4.10 seconds — including 3.50 seconds for sshd_config resources according to `--summarize`
* with the patchset, it takes 2.23 seconds — including 1.73 seconds (half the time) for sshd_config resources.

When the 26 changes are already in sync:
* the Puppet run takes 2.74 seconds without the patchset (i.e. when nothing is applied) — including 1.14 seconds for sshd_config resources according to `--summarize`
* and 1.70 with the patchset — including 0.04 seconds (about 30 times faster) for sshd_config resources.