Signature's S, when over half order, has to be encoded differently

Reference implementation: https://github.com/bitcoin/bitcoin/blob/b7bba43a14a641b6b64bbf48357b2987c1b05800/src/key.cpp#L235-L238

ht @oleganza

Thoughts?
Also, in regards to the more strict verification, the extra strictness checks are not limited to P2SH.  They're also used as part of determining which transactions are "standard" and therefore admitted to the mempool.  It does also apply in the P2SH context as well.  

[btcscript](http://godoc.org/github.com/conformal/btcscript) handles the difference between consensus and the more strict "standard" checks via [flags](http://godoc.org/github.com/conformal/btcscript#ScriptFlags) as well.