ec/dsa: recovery param now used consistently

Also added an assertion rather than massaging the input.
ec: use signum() not equals(BigInteger.ZERO)
ec: extract BigInteger constants
ec/dsa: extract P_OVER_FOUR as a curve specific constant

This actually resolves a possible bug if multiple ecparams were used
(aka different values for P_OVER_FOUR, but only the cached was used).
ecdsa: comment cleanup
ecdsa: opt for shiftRight, pow and square

In the given situations, these offer better readability, or in the case
of shiftRight, a substantial performance increase.
ec: fix point decoding for other curves