queue work in progress
Queues, Clumps: Work on async support
ExecutionContext, Queues:  Modularized timer waiting code so waiting states can be extended easier.
Queues: Some more work on consolidating async operations
Makefile: clang/g++ option fix
VireoMerged.cpp: added Synchronization.cpp
SubString: Added SubString as a builtin cluster type.
Arrays: End pointer replaced with capacity field.

This is staging for variable sized arrays that can have a capacity larger than actual element count. Also for a faster
Length calculation.
ArrayCore: ResizeCore is now ResizeCapacity, Simplified array construction, Array has Rank() Method.

Array constructor now simply resize to empty. this triggers any necessary allocation for bounded or fixed arrays.
The Arrays Rank Method still get the rank from the type, but callers no longer need to see that detail and makes it easier to
store the Rank in the array later if it helps.
ArrayCore: _typeRef->Rank to Rank() refactoring
Arrays: Fixed some bugs array capacity and bound arrays. Added unit tests.

Depending on how arrays were resized, requests to size bounded arrays to amounts larger than
their limit were either clipped at the limi, or ignored. Now requests are all clipped.

Reserve elements (those that exist when capacity exceeds length) are now consistently in the cleared state.
This cleaned up initialization of bounded arrays in general.