newlines in strings are invalid JSON

Although script_valid.json and script_invalid.json are loaded correctly by the
JSON interpreter used by bitcoin core, these same files are often used by other
libraries and do not necessarily load correctly due to the fact that newlines
contained inside strings are not valid and must instead use the escape
character \n. The files tx_valid.json and tx_invalid.json handle this
correctly, so I've changed the formatting in script_valid.json and
script_invalid.json to mirror those files.
[Qt] make PaymentServer::ipcParseCommandLine void

- the function only returned true, so make it void
- add a comment about payment request network detection
[Qt] add BIP70/BIP71 constants for all messages and mime types

- also rename current ones to match the new ones
- remove constant from guiconstant.h and add it to paymentserver.cpp
[Qt] ensure socket is set to NULL in PaymentServer::ipcSendCommandLine
[Qt] remove dup lock that is done in SetAddressBook()
[Qt] add BIP70 payment request size DoS protection for URIs

- current code only does this for payment request files, which are
  used on Mac
- also rename readPaymentRequest to readPaymentRequestFromFile, so it's
  obvious that function only handles payment request files and not URIs
- small logging changes in readPaymentRequestFromFile
[Qt] add BIP70 DoS protection test

- this test required to make readPaymentRequestFromFile() public in order
  to be able to is it in paymentservertests.cpp
[Qt] update paymentserver license and cleanup ordering
Merge pull request #5409

65b0328 newlines in strings are invalid JSON (Ryan X. Charles)
Merge pull request #5216

5ec654b [Qt] update paymentserver license and cleanup ordering (Philip Kaufmann)
4333e26 [Qt] add BIP70 DoS protection test (Philip Kaufmann)
31f8494 [Qt] add BIP70 payment request size DoS protection for URIs (Philip Kaufmann)
2284ccb [Qt] remove dup lock that is done in SetAddressBook() (Philip Kaufmann)
1ec753f [Qt] ensure socket is set to NULL in PaymentServer::ipcSendCommandLine (Philip Kaufmann)
814429d [Qt] add BIP70/BIP71 constants for all messages and mime types (Philip Kaufmann)
b82695b [Qt] make PaymentServer::ipcParseCommandLine void (Philip Kaufmann)
Port of walletbackup.sh to Python.
Merge pull request #5427

1577df9 Port of walletbackup.sh to Python. (mrbandrews)
Introduce GMP library's arbitrary-precision rational number type.
Fix Art Forz's time-traveller attack, where a 51% attack can change difficulty at will.
Add new difficulty adjustment filter, which replaces the simple average over 2016 blocks with a faster-acting 144-tap Parks and McClellan FIR filter, and adjustments every 9 blocks with a gain of 0.1025 and limiter of 1.055.
Enable new difficulty adjustment filter, as of block 28336.
Special, one-time adjustment of difficulty due to the "hash crash" of Apr/May 2013 which rushed the introduction of the new difficulty adjustment filter. The difficulty is adjusted back to the difficulty prior to most recent adjustment at that time.