gdb vendor branch: Bring in additional source files

The tui mode of gdb will not function when the readline library is
replaced with libedit.  Bring in readline sources to build gdb
properly.  The readline library will be used internally to gdb only.
Merge branch 'vendor/GDB'
gdb: Fix gdb -tui mode

The gdbtui (aka gdb -tui) mode has been nonfunctional for a long time
due to the replacement of readline with libedit.  After speaking with
Cristos Zoulas, it was confirmed that libedit can't support gdbtui now
and is not envisioned to support it in the future.

The tui mode is fixed by building the readline library internally and
linking against that instead of libedit.

The README files were updated to reflected additional imported sources
for readline and the removal of libedit-caused local modications to
tui-io.c file.
kgdb: Add TUI mode as an option

Now that -tui mode is fixed for gdb, let's allow kgdb to use it.  This
commit adds the -t (--tui-mode) option to kgdb to allow debugging core
files with gdb's Text User Interface terminal interface.

The -q (--quiet) option had to set when --tui-mode option is set due
to the initial verbosity destroying the curses window otherwise.
tcp: Use TAILQ for segments reassemble queue

So the last segment of the reassemble queue could be peeked w/ minimal cost
test/debug/fdpassing: Correct a typo.
tcp: Make PAWS robust against segments reordering

This tends to prevent valid new segments from being dropped by the
reordered segments sent by the fast retransmission algorithm on the
sending side, i.e. the fast retransmitted segment w/ larger timestamp
arrives earlier than the previously sent new segments w/ smaller
timestamp, which causes the valid new segments being dropped.
kernel/profiling: Fix a kprintf format.
tcp: Ignore TCP_NOPUSH socketopt by default

For ill optimized programs which misuses this sockopt will cause
unpredicted length of network stalling, if the total sending size
is not TCP sending segment size aligned.

sysctl node net.inet.tcp.disable_nopush controls whether TCP_NOPUSH
will take effect or not

I am not going to fight agaist the stupid programs in the wild.

DragonFly-bug: http://bugs.dragonflybsd.org/issues/2368

This is actually _not_ a bug on our side.
vkernel: Fix compilation with profiling support.

The vkernel is a special userland program in the regard that its Makefile
is generated by config(8), which is kind of tailored to the real kernel.

So first of all, we have to modify config(8) to detect it's a vkernel we
want to build and in this case it should not define GPROF which otherwise
activates the real kernel's profiling bits.

Then, modify libkern's mcount.c to skip kernel specific parts too.

Then, modify the vkernels' Makefiles to take into account ${PROF} (and
while we're here, ${DEBUG} too) which are set by the surrounding Makefile
which is generated by config(8).

The vkernel is now (from profiling point of view) treated like any other
userland program.

Last but not least, add some documentation about building a vkernel with
profiling support to vkernel's manpage.

To build with profiling, simply add CONFIGARGS=-p to the buildkernel
command line. It will need the config(8) program to be in /usr/obj's
btools dir, so either a buildworld with this commit needs to be done,
or config can be installed manually to /usr/sbin and nativekernel can
be used.

Tested-by: tuxillo
examples/rconfig: Some fixes to our installation scripts.

* Allow the script to be run in a netbooted scenario, too.

* Raise the default size of the root partition to 768M (like the
  installer's default).

* While here, add some comments and whitespace.

Submitted-by: Joachim de Groot <jdegroot@web.de>
share/man/man1/Makefile: One MLINK per line.
builtin.1: Sync with what we have.
kernel: Remove some bogus casts to the own type.
tcp: Improve RFC3517bis support

- Factor out tcp_fast_recovery()
- Delay fast retransmit or fast recovery for duplicated ACK which
  carries data or updates receiving window, so that
  o  The segments sent by fast retransmit/recovery could carry
     proper ack sequence and SACK information.
  o  Receiving window could get updated, so more new data could be
     injected into the network by the fast recovery.
tcp: Implement RFC4653 Non-Congestion Robustness (NCR)

It is enabled by default and can be disabled using sysctl node:
net.inet.tcp.ncr

As far as I have tested on heavily reordered network path, this
algorithm does avoid most of the spurious fast retransmits.  While
on the normal network path, the fast retransmits stil could be
triggered properly.
builtin.1: Add two more built-in commands.
builtin.1: Bring in some enhancements from FreeBSD.

It is modeled after what they did but based on what we actually have in
our shells' source.

* Use "No**" to mark commands which exist externally but are implemented
  as a script executing the builtin.

* Some further explanations and mdoc fixes.
bsd-family-tree: Sync with FreeBSD.
Fix some typos in manual pages.