correction for the corner cases of round presented for the boost version

of round by robin eckert.

We suffer the same as round in simd common is quite trunc(x+Half). In scalar we use when available ::round and ::roundf that work
properly, but the code is not correct if they are not available.
The commit present a version that apparently correct the two flaws noted by roin eckert,but the code is not the same as in its
proposal as I tried it and it didnot work as 1-prev(0.5) is equal to 0.5.
unary_minus is missing, plus isn't needed anymore and should be removed