Rename subtype to issubtype
Add rounding modes to normal floating point arithmetic
Add Float32 rounding mode tests
Integrate the new rounding modes with BigFloats

This changes the old rounding mode sketch to a more intuitive one,
and using types instead of constants seems to be more logical.
Export RoundAwayZero too (even though it only works for BigFloats)
Stop hardcoding the `fenv.h` constants

As suggested by Viral in https://github.com/JuliaLang/julia/pull/3149
Fix bug while parsing fenv_constants.h
Renaming of the rounding modes
Fixes post-rebase
multi.jl: worker finalization, remove :cmd, flush worker() info
Remove fenv_constants.jl, as it is auto-generated
Documentation for the rounding modes (manual + stdlib)

It also includes some updates to some related sections about
BigFloats.
stream.jl: flush() for Pipe, too
Fix issue with fenv.h and Ubuntu 12.04

If the values from fenv.h aren't found by the C preprocessor, it uses
the default ones for x86/x64
Deprecate subtype
Pkg.available: handle unregistered packages correctly.

Read.available now returns empty hash for unknown packages, which
in particular means that Read.installed_version now works correctly
for unregistered packages where it didn't before.
Pkg.checkout: merge whatever branch we're checking out by default.

This relates to https://github.com/JuliaLang/julia/issues/4123 and
may in fact be a sufficient solution. Previously the behavior was
very deeply confusing because one would end up in a situation where
METADATA and the repo we're in knows about much more recent versions
than the current local branch includes. This situation is fixed just
by doing a merge – only fast-forward to be safe. I'm not sure what
we should do if the fast-forward merge fails. We can deal with that
when we have a circumstance where it actually happens.
Pkg.release: better error handling in case of no registered commits.

The previous logic would go into an infinite loop -- I forgot that
prefetch returns a list of missing hashes and doesn't error out.
Merge pull request #4167 from nlhepler/lh/finalization

multi.jl: worker finalization, remove :cmd, flush worker() info
Pkg.{checkout,release}: get rid of the `force` option.

If a repo is dirty, the user can go in and clean up manually. The
force option was just a complication for something that people can
and probably should just do themselves since they're the ones who
dirtied the repo state in the first place.