Add support for multiple.dot.levels.of.completion

This is only working for certain types.  More work remains.  A lot of code
still needs to be cleaned up.