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?
My understanding of BitcoinQT is that when scripts are evaluated within P2SH context, stricter checks apply to the signatures. In BitcoinQT this mode is called "SCRIPT_VERIFY_STRICTENC" (see in https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp). Outside of P2SH canonical signatures are not mandatory for compatibility with all nodes before 2012 (when P2SH was introduced via miners' soft-fork voting). 

Also, signatures with negative S were always compatible with all clients since 2009, so it's not a "new functionality". What's new is attempt to standardize the canonical format of the signatures to prevent malleability.