Jim Bosch there are a lot of pull requests here but all but utils are just making changes to keep up with the changes to utils, daf_butler, and pipe_base. The timer code has been made more general.
utils now uses mypy (except for a couple of the functions in test.py and wrappers.py) so daf_butler is now able to use those when using mypy. Doing that forced me to fix doImport usage to do type validation and I also added doImportType to ensure that a type and not a module is retrieved. Note that you will need to set MYPYPATH to $UTILS_DIR/python otherwise things will not pass in daf_butler.
I am deliberately not exporting these new lsst.utils functions into the default namespace.
There are now only three routines left in butler utils.py: globToRegex, stripIfNotNone and transaction. Nothing uses those outside of daf_butler and the transaction one in particular seems quite specific. I could move the other two over if you think it's worth it, or else wait until something else needs them. I wasn't sure if you wanted the named.py stuff to move over or any of the time functions in daf_butler.