Validation of y/n answers in setlanip

At the moment the user can answer "yes" to most of the questions, but then later code only checks if the answer is "y". Thus you can type in "yes" in some places, have it accepted, but actually the negative action is taken. That is weird and will mess up people who try typing a whole string starting with "y".
With this change it makes the user type one of "y", "yes", "n", "no". When they type 1 of those, it is turned into either "y" or "n". Then the existing implementation logic all works as expected.
Also, it is not obvious when the last question is being asked, before actually implementing. IMHO it would be good to give the user a chance to bail out if they have answered questions wrongly and just want to get back and start again. So "Do you want to apply these changes?" question has been added.
Also there was a bug in checking $intbits value at line 299 - I could enter a big number for CIDR and it accepted it and blew up later trying to implement something like 10.11.12.1/99

Should address redmine #4100 
I was thinking that the values in $config are just pulled in by the require_once() of config.inc
Then if they are never written back to config.xml (no write_config is done), they will just be effectively thrown away when the code returns, and thus any changes would be gone.
So maybe this is not true - maybe the caller rc.initial is going to now have a part-modified $config[] array and if some other mod is done later and write_config() is called, then these bits of changes will end up getting saved.
Global variables that are not read-only are are a pain!
I will have a think - I guess I can save up any changes in other vars and set them in $config after the user has confirmed.