Avoid waiting for threads to create

Avoid blocking for threads to create in the constructor. This is
safe because the destructor will block until the threads join.

Also avoid creating the thread pool if the image only has one
block.

Get the GC task proccessor to delete the thread pool.

Bug: 116052292
Test: test-art-host
Change-Id: I80399525caa0775eddade73c11e7ebc06e41416a
6 files changed