Add --dry and --diff to apply
This release cleans up a lot of the code, with the major new feature being the --diff and --dry flags for the apply command. Apply can now be non-destructive as well as give a detailed look at how the local files differ from what is on the server