Various optimisations to Stem
Various optimisations to stem to make stem.descriptor.parse_file() faster.
Individual patches attached.
Things learned from doing this:
- cProfile and line_profiler are cool tools used together.
- One should compile regexp outside of functions and loops.
- isinstanceof() is slow. Maybe trust later functions to do the right thing(TM) and catch exception when type is wrong
- Boringly Python's datetime.datetime.strptime() is slow. Replaced with regexp.