Automatically freeze cookbooks on upload

Cookbooks should be treated as versioned artifacts and once they are published to our Chef Servers, they shouldn't change. It's a really bad experience to have the rug accidentally pulled from underneath you by a co-worker when you have a cookbook version hard locked and it changes unbeknownst to you.

So moving forward cookbooks will automatically be frozen upon upload. The new behavior will be as such:

* All cookbooks will be frozen on upload
* Frozen cookbooks will be skipped over instead of re-uploaded. This should drastically increase upload speeds.

New flags and options to be added:

* Add a `--no-freeze` option to `upload`. This will change the new default behavior of automatically freezing cookbooks on upload to NOT freeze them.
* Add a `--halt-on-frozen` option to `upload`. This will cause the CLI to exit with an error if a cookbook of a same name/version is present and frozen on the Chef server.
* slightly mutate the behavior of the `--force` option on `upload`. Force will upload all cookbooks (dependencies included) regardless if there is a frozen cookbook on the remote. This is your "do the fuck what I said" button.