(#593) parsedfile: add support for native file headers

Some managed configurations (notably the vixie cron crontabs) are
automatically prefixed with headers not unlike those generated by
puppet providers themselves. This can lead to "mutual 1up" situations
in which puppet and the third party software will insert header upon
header in their respective output.

This change introduces the a "native header" for a parsed file. Providers
can define a regex object that will be used to identify the part of a parsed
file that comprises such a vendor header.

When writing the content back to disk, puppet will try and insert
its own header underneath the vendor's headers. Additionally, providers
can override a "drop native headers" field in order to have puppet
skip the vendor header alltogether when writing file contents. This allows
"smart" software like vixie cron to manage its header on its own.

The unit tests are based on example code kindly provided by Jeff McCune.
(#593) crontab: drop vixie cron headers when writing crontabs

This makes use of the "native header" of parsed files.

Vixie cron headers should never be written back to disk, because
cron will insert a new header, regardless of what's found in the
temporary input file.

The underlying issue is a cron bug, because vixie headers should
(probably) not appear in `crontab -l` output. This is indeed fixed
in newer versions of cron, so this workaround merely introduces
compatibility with older systems.
Merge branch 'pull-1479'