Including:
- every GameplayTask can specify resources it requires to run, and separately resources it's going to lock, or "shadow" ones in the priority queue
- added a broadcast delegate to GameplayTasksComponent one can register for to get notified about changes in resource locks
- AI uses this to lock AI logic for scripted tasks
- made IGameplayTaskOwnerInterface::GetAvatarActor require a task pointer to determine avatar actor - this was needed for a "skeletal" owners, like BT nodes
- Improvements to AITask_MoveTo
- expanded BTTaskNode with bits required for it being a GameplayTask owner
- might need to move that to the most generic BTNode so that services can easily spawn tasks as well
- BT movement tasks can now use AITasks (opt-in with AISystem::bEnableBTAITasks via Project Settings)
- started adding a generic mechanism for configuring AI properties via Project Settings
- consistency throughout multiple ways of spawning given AI task being the main drive here. Started with movement of course
- currently implemented by exposing AISystem's properties to global config. Going to switch that over to UDeveloperSettings soon.
- Added a blackboard component member to AIController
- added setting BB SelfActor key to AI-controlled Pawn
[CL 2597132 by Mieszko Zielinski in Main branch]