update: Poor man's profiling.

* Added a very simple (and extremely inefficient) profiling method
  called timeit. It can be simply used as a decorator around afunction
  one would like to profile.

* This shows that the part which is slow is indeed the nested loop.

Signed-off-by: mr.Shu <mr@shu.io>