check integer truncation (#5413) and make more operators follow T+T => T (#3759)

the sysimg builds, but still need to:
  - check same-size signed<->unsigned conversion
  - make tests pass
get numbers test passing with checked integer conversions and type-stable arithmetic
make a couple things safe for checked signed<->unsigned conversion
check signed<->unsigned conversions

this would be a bit cleaner without the code in intfuncs that dispatches
on Unsigned.

signed() and unsigned() are convenient for testing bit patterns in the
test suite. for now replace with assigned() and asunsigned().

uint8(x) is convenient for moving bytes around, so it remains unchecked.
we should perhaps rename this to byte(), and either eliminate uint8()
entirely, or make it checked.
get dates tests passing with checked signed<->unsigned conversion
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc

Conflicts:
	base/number.jl
get a few more things working with checked integer conversions
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc

Conflicts:
	base/intfuncs.jl
make signed() and unsigned() unchecked. check only in convert()

a few fixes in base for the convert and arithmetic changes

get all tests passing
add a bit of widening to reductions, to make up for the new
type-preserving arithmetic.

allow reducedim(+, A, 2), which previously gave
```
ERROR: `reducedim_init` has no method matching reducedim_init(::IdFun, ::Function, ::Array{Uint8,2}, ::Int64)
 in reducedim at reducedim.jl:217
```
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc

Conflicts:
	base/reduce.jl
fix more cases of widening in reductions

also fix sum_kbn on empty input
fix more issues with integer conversion in random number generation
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc

Conflicts:
	base/reduce.jl
doc and test updates for checked integer conversions
Merge branch 'master' of github.com:JuliaLang/julia into jb/checked_int_trunc
Update linalg.rst

Updated the documentation for `Base.LinAlg.BLAS.gemv!` based on:

http://www.math.utah.edu/software/lapack/lapack-blas/dgemv.html
Merge pull request #8510 from krislock/patch-1

Update linalg.rst
allow fully-evaluated keyword argument pairs. closes #7704

anything in an argument list after a ; that's not of the form `a=b` will
be evaluated and expected to be some kind of pair of a symbol and value.