ENH: Cleaned up evaluation system

* Simplified 'cycle' kwarg in choice selector to c for brevity
* Renamed imult to imul for brevity
* Added unit test to ensure that we can provide extra context (such as special
  functions) to the evaluation namespace.
ENH: Added coroutine
BUG: Corrected bugs in evalutate.choice tests