Caching HTableFactory to avoid excessive ServiceLoader.iterator() invocations

For #210.  Tests are passing.