Have osx::defaults enforce the value type of a preference key

Exec for `defaults write` will run if type doesn't match.
Merge pull request #93 from toolbear/osx-defaults-enforce-type

Have osx::defaults enforce the value type of a preference key
Specify data types for screensaver defaults

If they're written as the default (string) type, they don't work.

Conflicts:
	manifests/security.pp
Require password is an integer value
decompress apps with ditto

this is required for resource forks to be extracted correctly.
the zip command doesn't understand them.

fixes #57
use puppet's commands dsl, DRY up cached_path
why is this even a class method
why is this a class method either
extract source_type
extract receipt_path
extract app_path, also fix missing .app bug
tbz2 is also a thing
handle implied flavors
source_type → flavor
verify implied flavor is valid
apps are installed as staff, come on now
exclude the dot from detected flavors, ughhhh
ditto works like mv, not tar -C
source is gone
puppet doesn't allow options on commands

but we're already running as root in boxen, so whatever