Split off crontab read/write to CrontabFileHandler and add read/write of arbitrary files.

We have a case where we have a lot of separate projects that all need to maintain a single crontab. As we really like to keep this nice object-oriented syntax, we decided to add reading and writing of aribtrary files.

Because adding these methods to the main Crontab class makes it more bloated, I've seperated to split the actual reading and writing of Cron files off into its own class.

Backwards compatibility is maintained, and the original methods are marked as deprecated.

In case you have any comments, I'm open to discussing them and making any changes necessary to make this PR acceptable.

Thanks, Jacob