title: asyncio's call_later raises 'generator' object is not callable with coroutine object
body: <p>I have some simple code code made with Python 3.4's asyncio using <code>call_later</code>. The code should print, waits 10 seconds, and then print again (but instead raises <code>TypeError</code> when <code>end()</code> should be excecuted, see below):</p>
  
  <pre><code>import asyncio
  
  @asyncio.coroutine
  def begin():
      print("Starting to wait.")
      asyncio.get_event_loop().call_later(10, end())
  
  @asyncio.coroutine
  def end():
      print("completed")
  
  if __name__ == "__main__":
      try:
          loop = asyncio.get_event_loop()
          loop.create_task(begin())
          loop.run_forever()
      except KeyboardInterrupt:
          print("Goodbye!")
  </code></pre>
  
  <p>Gives the error:</p>
  
  <pre><code>Exception in callback &lt;generator object coro at 0x7fc88eeaddc8&gt;()
  handle: &lt;TimerHandle when=31677.188005054 &lt;generator object coro at 0x7fc88eeaddc8&gt;()&gt;
  Traceback (most recent call last):
    File "/usr/lib64/python3.4/asyncio/events.py", line 119, in _run
      self._callback(*self._args)
  TypeError: 'generator' object is not callable
  </code></pre>
  
  <p>From what I can tell from the docs (<a href="https://docs.python.org/3/library/asyncio-task.html#coroutine" rel="noreferrer">https://docs.python.org/3/library/asyncio-task.html#coroutine</a>), <code>call_later</code> takes a coroutine object, which is obtained by calling a coroutine function. This appears to be what I've done, but asyncio does not call <code>end()</code> properly.</p>
  
  <p>How is this supposed to be done?</p>