Fixed missing sentinel after running provision

This fixes a bug I discovered where "vagrant provision" would never create the sentinel file resulting in provisioners running again on the next "vagrant up".

Steps to reproduce.

1. Start with no VM
2. vagrant up --no-provision
3. vagrant provision
  - Provisioners are run but no sentinel file is created
4. vagrant up
  - Provisioners are run again because the sentinel file does not exist. This time the sentinel file is created so subsequent up commands do not run provisioners as expected.

I've also made the following improvements to the code.
- Always upgrade sentinel format if pre 1.5 format sentinel is found
- Moved writing of Sentinel file to after provisioning is completed