Split NameParser class in 2 classes to separate core parsing from cleaning. Use concurrency framework to run the core regex parsing in a different thread so we can timeout long running parses as seen in Catalog of Life taking several hours for a single name