Workflow state titles should be in past tense.
Preserve original file's indentation.

For easier copy/paste from original file.
Copy ExternalMethod.__call__ entirely to prepare for further patching.

Also, use from ... import * to make verbatim original code work.
Also, use original code's coding style for unaltered lines.
Add a warning about possibly incorrect code.
Add a TODO for python2.7-only feature.
Fix magic "self" parameter detection.

Original code behaviour:
>>> def foo(self, a=None):
...    return 'works'
...
>>> context.foo(a=1)
works
>>> def foo(self, a):
...   return 'works'
...
>>> context.foo(1)
works
>>> context.foo(a=1)
TypeError: foo() takes exactly 2 non-keyword arguments (0 given)

New behaviour fixes this TypeError, to be closer to normal python
behaviour.
Also, original code was doing expensive checks before cheap ones.
Collapse contiguous identical delimiters.

Fixes copy-paste of DateTimeField rendering into search expression, as it
separates time from date with 3 spaces.