The checker already warns for __block-storage variables being used as a dispatch_once() predicate, however it refers to them as local which is not quite accurate, so we fix that.
Also add tests to make sure it works.
FIXME: The analyzer sets stack memory space for __block variables when they are referenced outside the block (eg. test_block_var_from_outside_block() line 108). Will try to fix in a separate patch; i'm not relying on the memory space in this patch.