Update local stars and star selection criteria to be closer to reality

**DO NOT MERGE**

This is #1046 (from @s20dan), rebased onto master, with a couple of code fixes (*).

This needs some careful checking before merge. In particular, the `local_stars` and `bright_stars` data files have been re-generated, which means that any modifications or fixes that were applied to them directly have been wiped unless those changes were incorporated into the Python script that generates those files.

Since the original work for this was done many months ago, there's a lot of time during which such changes could have been made. Unfortunately, due to the nature of these files, merging by hand is basically impossible from just the final merge diff, so I've punted on that problem and resolved merges of the local_stars/bright_stars scripts in favour of the new files. Someone needs to carefully go through all the commits that touched `02_local_stars.lua`, `03_bright_stars.lua`, or `04_named_stars.lua` since December 2011 (when this work was started, or at least when the first commit was made) and work out for each change whether it needs to be re-applied.

Another thing is that this includes some code to generate new names for all Gliese, HD, NN and Gj systems, which changes more systems than it should. In #1046, @s20dan wrote:

> AFAIK it should be valid except perhaps ba1ff78 (Random names for poorly named stars)
> I had intended to change the renaming to only take place when there is a sufficient population present.

I've shifted the commits that implement this system renaming change to the end of the commit sequence so that they can be chopped off the PR easily if necessary.

(*) Specifically, this uses a normal Euclidean distance check for close sectors where #1046 used some odd check (which, from talking to s20dan, was probably a mistake in the first place); I've also added a commit on the end to use `starts_with` instead of a harder to understand use of `std::string::find`.