[#920] Lazy create Tasks on demand and only if needed in DefaultChannelHandlerContext

This should fix #920. 

@trustin please review... We could also change the thread-safety implementation here to either use:
* Double-checked-lock pattern, but we still need to use volatile here to prevent the JIT to reorder. Also it is currently disallowed via our checkstyle rules
* Use AtomicReference but I think this would give use more memory usage

The current thread-safety implementation should be fine but looks a bit ugly..