Refs #22047; added async branch which will improve the workflow of async creation, in first try we will not allow the user to attempt another creation until the previous creation is completed or errored
Refs #22047; Changed the following:

- check_version_status no longer calls the setter
- Log setting and removing of the versioning status from annotations
- Remove the versioning status in case of an error or creation completion
- Check if versioning didn't take longer than 15 minutes in which case
  we allow the creation of a new version, in this way preventing a
  situation where the versioning didn't complete and yet a server
  restart happened
Refs #22047; added message letting the user know that a version creation is already in progress; jslint-fixes
Refs #22047; assign false instead of deleting the value of versioningInProgress in order to avoid persistenmapping error; call set of versioning only once
Refs #22047; corrected success check when calling getLatestVersionURL and moved the check for versioningInProgress even before geting the versioning browser view
Refs #22047; correctly set the versioning status instead of removing it and added a logger statement for better debugging of operations
Refs #22047; created a new checkVersionAjax browserview which deals with the notion of versioning in progress since attempting everything within createVersionAjax will not work given the fact that the transaction is commited only after the view returns
Refs #22047; added missing call definition on CreateVersionAjax after moving the checking to a new method
Refs #22047; bumped time check to 900 from 15 and close previous fancybox before displaying in progress message
Refs #22047; added a small timeout of 2 seconds before attemping to create a new fancybox otherwise the call will not call since there is a check for the fancybox being in progress; removed the _p_changed of annotations since the setting is reflected without it
Refs #22047; added error handling of checkVersionsAjax ajax call and updated wording on the versioning progress logging checker
Refs #22047; added history entry; renamed CheckVersionAjax to CheckAjaxVersioning as it better describes the intent of this browser view
Refs #22047; the browser view for ajax progress checking is not renamed to checkAjaxVersioning
Refs #22047; changed the following for ajax versioning:$

- Renamed checkAjaxVersioning to AjaxVersion since now the
  browserview also accepts request parameter for setting not just checking
  the versioning process
- Modified createversion.js in order to perform a check first, set later
  only if setting is triggered by the startVersioning=True parameter
- Log the user id that started the versioning and the time it happened
Refs #22047; fixed browserView name which is ajaxVersion not AjaxVersion such as the browser view class
Refs #22047; use datetime call instead of time in order to get a human readable date set
Refs #22047; use done fail methods instead of deprecated success and error callbacks
Refs #22047; startVersioning should be a post and moved the starting of version creation only in the section where the versioning in started
Refs #22047; added a parameter to ajaxVersion when calling it in order to bypass varnish cache when needing to check for the versioning in progress
Refs #22047; Change the following to createveersion.js

- Reformated the code for better readability
- ajaxVersion is now a post check and check is now given a random
  number from 1 to 100 instead of a counter