add RoundingMode argument to convert

Adds an extra `RoundingMode` argument to some `convert` calls. This allows things like
```julia
julia> Float64(pi,RoundDown)
3.141592653589793

julia> Float64(pi,RoundUp)
3.1415926535897936
```
This uses stagedfunctions internally, so reduce to constants at runtime. I've also tried to improve the docs a bit.

It occurs to me that we could use also stagedfunctions to get rid of the "value" argument in the `@math_const` macro.

cc: @nolta