This should clean up the code a bit.
Note: at first I added the no-useless-cast rule, but after getting frustrated
with it (as it has many false positive), I decided to remove the rule but some
useless casts were removed so I let those in the PR.
With fixes; new now handles the parent initialize, visitor_spec now errors on
rejection, and nothing in the writeI18nOutFile() function was async so removed
the promise there entirely.
The comparator function for project names was invalid; sort() expect to be consistent and
in this case was returning 1 for a set of arguments, and 0 if arguments were reversed, leading
inconsistencies in the sort result.