Refactor name parser

This updates the way the various cleaver objects instantiate their name parsers, giving developers a hook to handle custom instantiation.