Added FreeBSD Support, Optimizations, Puppet 3.0 Support

With these changes, I optimized the rsync setup to only have to run once, added FreeBSD support, moved OS-specific tasks to their own classes, added OS detection (required by OS-specific tasks), added version support (for installation) for puppet/librarian, hiera support (for puppet 3.0). Also changed 'restart' to 'service' in order to allow more service control (start, stop, restart, etc...).

Goodness, suppose I added a fair amount.