Rewrote RlistFromSplitString() to not limit fragment lengths.

It previously restricted the sizes of fragments to 1024 bytes,
CF_MAXVARSIZE; it now uses a dynamically-sized buffer.  Also, instead
of appending fragments to the Rlist, prepend them and reverse the list
just before returning it; this reduces an O(len^2) to an O(len).
redmine6466: preserve order in readstringarrayidx

Reading the file's contents via a Set is harmless for the other
read*array functions, since they use data from each line as the key,
so naturally discard duplicates and have no other ordering than that
of the keys themselves; however, for readstringarrayidx, the order of
lines actually matters and duplicates are meaningful.  So convert
BuildLineArray to use an Rlist instead of a StringSet (and iterator);
and add an acceptance test (which was actually the hard part).
Merge pull request #1894 from ediosyncratic/honour-order

redmine6466: preserve order in readstringarrayidx
Simplify if/#if-ery to avoid confusing emacs indentation.
Add interface promise type
Complete references for syntax
Add RIP support examples of routing
Add expandrange function
Connectors for syntax to state
Remove overlay promise type, in favour of reserved array
Consolidate routes promises and flesh out the bodies
Add verify_{networks,interfaces}.[ch]
Renaming routing to networking
Syntax tweaks
Don't forget STP
Bind new promise types
Corrections and debug code for actuation
Save state of mockup
Homing in on the semantics
Implement IP address setting