#26630 wrap command callbacks to ensure exceptions bubble up in Maya
Because we use evalDeferred for stability on Linux, we've exposed a bug in Maya that causes any exceptions that are raised during the callback to get silently hidden and could potentially cause a crash. This works around the issue by wrapping the callback in a try/except clause and logging our own exception which raises the error and traceback info.
For #26314 - added migration of tank.bat/tank binaries to core upgrader
- Also updated script to use sgtk/Toolkit instead of tank where appropriate
- Closes #105
Execution permissions on install
This squash commit closes #109

Retrieve files permissions when extracting them
from the zip archive, and gives everyone execution
rigths if any of the owner, group, others right is
set on the original file
Merge branch 'master' of github.com:shotgunsoftware/tk-core
For #26314 - Fixed bugs in upgrader script
#26730 Support for Flame style sequences

This adds support for flame style sequence tokens, e.g.
/path/plates/render.[1001-1100].dpx alongside our existing formats %04d,
$4F, etc.

Closes #110
#26771 Fixed a bug causing the busy window only to show once.

This fixes an issue where the busy window would only show once. Second
(and subsequent) popups would never actually display the window.
Closes #111
Revert "#26630 wrap command callbacks to ensure exceptions bubble up in Maya Because we use evalDeferred for stability on Linux, we've exposed a bug in Maya that causes any exceptions that are raised during the callback to get silently hidden and could potentially cause a crash. This works around the issue by wrapping the callback in a try/except clause and logging our own exception which raises the error and traceback info."

This reverts commit ac074f3d2dd5f03989bf3d32bf543a63fd98a046.
#27091 re-add public method to get pc root metadata with depr. warning
This method is undocumented and shouldn't be used, but renaming it as private with no warning was abrupt. So we're trying to be a little more polite. Though it still should not be used :).
Unable to click on the back button to change config path
Allow users to click on the back button to change the configuration folder path if an invalid value is entered. Closes #112.
New path cache implementation and associated functionality.

Shotgun Path Cache

- This commit introduces a stronger and more robust folder creation
mechanism where the associations between folders on disk and entities in
shotgun are tracked in shotgun rather than in a local file on disk (the
so called path cache file).
- On application launch and folder creation, the locally cached folder
database (the path cache) will be synced against the list of folders in
Shotgun.
- On setups where several local independent storages are used, it is now
possible to "replay" folder creation on each local machine via the path
cache synchronization mechanism.
- New projects created will automatically have this feature enabled.
- Existing projects will behave exactly as the did before - no change.
- There is a `tank` command which can be used to upgrade an old project.
- There is a `tank` command which can be used to force synchronize the
local cache.
- There is now a better workflow for renaming folders. Asset names no
longer need to stay in sync with the created folders on disk - these can
vary independently once folders have been created (although this may be
confusing for users!). In order to rename or update folders, a special
new tank command called `unregister_folders` have been introduced. This
unregisters folders and thereby leaves space to re-create those same
folders, allowing for a workflow where disk locations can be upgraded in
a controlled and programmable fashion.

Cache Location

- The path cache file no longer exists in the primary project storage
but instead resides on a user's local machine (inside `~/.shotgun` on
Linux, in `%APPDATA%\Shotgun` on Windows and in
`~/Library/Caches/Shotgun` on Macosx. 
- Other cache entries have also been moved into this location - the
`cache_location` property on the Engine/Framework/App base class no
longer points into the cache folder in the Pipeline Configuration but
rather to the local folder mentioned above. This improves performance on
setups with slow networked file storage.
- The cache location is configurable per data type and can be overridden
via a core hook if desirable.

Project Configuration Files

- The `tank_configs.yml` file which previously had to exist in each
project root is no longer needed. Instead, this information is cached on
disk inside the cache location mentioned above. 
- This disk cache keeps shotgun information so that the same lookup
doesn't have to be carried out over and over again, resulting in overall
performance improvements, especially for the `sgtk_from_entity()`
method.

Other

- Our internal test rig has been improved and is now providing a
complete shotgun emulation as part of its test harness, allowing for
more realistic test setups and through testing of toolkit/shotgun
interaction.
- The `move_studio` tank command has been deprecated - this is now
replaced by the `attach_to_core` and `share_core` commands.
- When accessing a Shotgun API instance outside of a project/tk context,
internal code is now sharing a single API handle, resulting in improved
performance for several `tank` commands.
- Core hook support has now been upgraded to support our second
generation hooks which allow for inheritance and explicit method names.
The first hook to support this new scheme is the cache location hook.
[minor] Fixed an issue causing the win32 unit tests to fail on CI.
[minor] Added compatibility fallback for internal core hook methods.
The 0.15 changes renamed the *internal* method tk.execute_hook to
tk.execute_core_hook. This is to help support clients who are calling
the execute_hook method from their code.
[minor] Renamed tank to sgtk in the upgrade migrations check.
#26483 Fixed a bug where engine hooks couldn't be configured.
This resolves an issue which was causing new-style engine hooks not to
be overridable - if you tried to override an engine hook with your own
implemention, an exception would be raised. Closes #113.
#27241 Improved QT checks beyond checking has_ui

If the shell and/or shotgun engines have not been updated recently, it
is possible for the new 0.15 core to generate QT errors because the
has_ui method is implemented incorrectly in the engines. We need to add
extra error trapping here to ensure there is a graceful step-down in
that case. 

Closes #114
#27253 Fixes regression in with cloned pipeline configuration init.

In 0.15.x, the pipeline configuration data is cached in a new way,
eliminating the need for one of the lookup files in the project storage
location. There was, however, a regression caused by the fact that the
cache was not refreshed from Shotgun unless there was a full cache miss
- e.g. the entire project was missing from the pipeline configuration.
If there was a primary config present for a project in the cache, the
cache was deemed as being valid. This meant that if someone cloned the
primary config, the data about the clone would not appear in the cache
and toolkit would think that the clone location was not a valid pipeline
configuration.

This change fixes this issue by adding a higher-level try/catch, making
it more consistent with the behaviour in the sgtk.from_entity() method.

Closes #115.
[minor] Improved error checking around missing storage defs.
This resolves an edge case where path caches would not be correctly
generated when a primary storage has been redefined not to contain the
defintions for an OS platform. Toolkit now fails more gracefully and
will skip FilesystemLocation entries where no path has been defined.
#27305 Better error reporting in conjunction with git commands

Adds better error reporting when git is missing from the system or when
a git command fails. Closes #116.
Merge branch 'master' into 25483_core_as_zip

Conflicts:
	python/tank/api.py
	python/tank/deploy/tank_commands/setup_project_core.py
	python/tank/pipelineconfig.py