simplify completion code by merging {Base,Native,Custom}PathCompleter classes into one class