Add utility directory

This adds a new utility directory and moves some of the utility
functions and classes (e.g. dim(), extents, wait_list) there.
Merge pull request #334 from kylelutz/utility

Add utility directory