implement proper rounding for Float32 to Float16 conversion

before we always rounded towards zero, now we round to nearest and round
ties to even.

without this, printing Float16s was broken:

```
julia> nextfloat(float16(.3325))
float16(0.3325)

julia> float16(0.3325)
float16(0.3323)
```
Merge branch 'master' of github.com:JuliaLang/julia