move metacall code to a better place

Change-Id: I5622b9a434c40130f48f25008b828e9d5818f7a7
EventLoop: add ExecutionContext abstraction

Change-Id: I120345001e8d1156584a576ee00e1884f862d045
Add qi::Strand

Change-Id: I78661370a224f1b44e2b56b3337284eed26f594d
clean up Manageable

Change-Id: I9301c6fb290663b483ed87766188796eba69c10e
Manageable: store ExecutionContext as shared_ptr

Change-Id: I4175fa49ce57ea9f91731e3977eabeedfbd8a762
Strand: use it on SingleThreaded objects

Change-Id: I53eaed1c86133a50e3219ab6b7b650969aae9086
ExecutionContext: add async(callback, delay/tp)

Change-Id: Idbb3e0002e41896630cc50738dfb8a82697b48cf
Strand: add default constructor

Change-Id: I72e5df60bbfa645063f414b732964e1833156130
doc: qi::track*

Change-Id: I430fb448b6cabc907fd48d34d5549341c2d25cf0
Actor: add class and support them in Future

Change-Id: I42a3a85c6fb9351f1be709d76dcd1f857c9c8b6c
Strand: improve tests

Change-Id: Iac966f9bb6c45ecc9aadc5d8004b64fb57d39503
Strand: schedule anyobject work on actor's strand

Change-Id: I4a919d4b29d63d65ba2bccfc3d1bb9e013045187
Actor: support them in signal

Change-Id: I58442d94b1fd3365c3595808d9d7c95da47b6298
Actor: support them in PeriodicTask

Change-Id: I9e63f799f160e569a5f079792cfd67760dfe2574
strand: support explicit strand connection on future

Change-Id: Ia733bdda625bc03b4ede2e2c5949c2e3dbda5478
strand: support explicit strand connection on signal

Change-Id: I283821636d89cc8fc4fcbf9e0c3a65fcf84188a1
strand: support explicit strand connection on periodictask

Change-Id: Ia97d965b26ee1d7929ca431763edd25e18321b4c
executioncontext: add async with any return type

Change-Id: I4b9309c537a1ebe50be7bf9e2d711fe3dab50e9a
async: schedule on strand if first argument is an actor

Change-Id: Idd2495edeeaa6006b1a4f01182f7bc95b041fd76