Split almost everything else from the main repository.

The source to the split packages is in repositories under the
`racket` organization on GitHub. The repositories are all named
according to the pkg name, except for multiple-package
repositories such as `racket/compiler` which is named based on the
old directory name without the `-pkgs` suffix. Thus

   `pkgs/compiler-pkgs` -> https://github.com/racket/compiler

The Makefile has also been adjusted to pull packages from the
catalog when you type `make`. This currently relies on some tricks
that will break if you try to specify a particular set of `PKGS` on
the command line. We plan to improve this soon.

The packages in `pkgs/racket-pkgs` and `pkgs/base` are staying in
the repository, since they logically belong with the core code.

The `plt-services` package is still in the repository, but will
move out soon.
Ignore extra-pkgs/
package manager: adjust parsing of file:// URLs

For some reason, I previously made the package manager parse file URLs
by stripping away "file://" and treating the rest directly as a
path. Maybe it was to support relative paths, or maybe it was to
implicitly disallow query and fragment parts of the URL, but it seems
like a terrible idea; I've switched to `string->url` plus `url->path`.

As a result, parsing now implicitly allows and ignores query and
fragment parts of a "file://" URL. That's intended as a feature,
allowing extra information to be attached to a path in, for example,
a catalog.
package manager: "file://" URLs and "?type=..." queries

Allow a "file://" URL to specify a type that causes the path
to be installed as a link or static link. A type query like
that is mainly intended for use in a catalog, where a catalog
of local directories could create links as needed for other
packages (that might be pulled from other catalogs).
remove "native-pkgs"

Treat native-library packages like all the others that are now
served from the catalog.
make: link packages via local catalog

Change the way that packages in "pkgs" are handled by `make`:
create a catalog that causes them to be installed on demand
as directory links.
fix build for a fresh checkout
Fix Travis tests by using collection paths instead for file paths.
make: fix Windows build
make: clear out "local" installer mode

The "local" installer mode made sense only with a "pkgs"
directory that had everything to be included in the installer.
A file for this already existed.
make: fix Unix-style build
raco pkg: fix removal before re-instal of extra clone-sharing packages
raco pkg: fix a test
correct inverted sentences
Enable some extra tests in Travis CI.
Combine some of the tests proposed initially to reduce the number of builds in Travis
fix tiny typo in `arith.rkt` in racket guide
optimizer: more optimizations for begin0

Move begin0 inside begin, for example
(begin0 (begin X Y) Z) ==> (begin X (begin0 Y Z))
Try to replace more begin0 with begin when the first expression is movable
Drop the begin0 when it has only one non omitable expression that preserves
the continuation marks.
simplify treatmenet of `begin0` and discarding expressions

Since `begin0` at the bytecode level always evaluates an initial
expression in non-tail position, we don't have to work so hard
to ensure that an extra expression sticks around.