Restructure the tree in a sane way

Merge linux/src and linux/dev. But only if using a sane RCS, so leave it as-is for now. Also, a bunch of (header) files from there may probably be discarded.

Remove dead files from the GNU Mach source tree

For exported files (via make install), the plan is to first stick some #error This file is scheduled for removal. Write to <bug-hurd@gnu.org> if you have a reason to have it kept available. into them, and then actually remove them after some months.

For some of the internal header files (containing function prototypes and the like), it might actually be useful to use them. (And then get rid of a bunch of extern ... statements in other files.)

This following list was assembled by putting such a #error ... line into each of the gnumach-1-branch's header files (exported and internal; save the linux/ ones (only internal) for simplicity), and then trying to build GNU Mach until this would succeed again (by removing offending #error ...s), and afterwards using the set of exported files for building a cross toolchain (again still removing offending #error ...s). A very crude and imprecise method.

So, additionally to the list given below, there may actually be a bunch of further files (also exported ones) that serve no real value, but are being #included through one way or another.

Remove dead functions, variables, etc. from source files

Rewrite ugly code

IRC, freenode, #hurd, 2012-09-06

<mcsim> hello. Why size parameter of rpc device_read has type
  "mach_msg_type_number_t *"? Why not just "vm_size_t *"?
<mcsim> this parameter has name data_count
<braunr> that's one of the reasons mach is confusing
<braunr> i can't really tell you why, it's messy :/