Add Subsection About Wallet Programs, Incl. Hardware Wallets

Preview: http://dg1.dtrt.org/en/developer-guide#wallets

The existing Wallet section only covers private key storage. This PR moves that text into a Wallet Files subsection (changing every h3 to h4 and h4 to h5) and adds a new Wallet Programs subsection, giving the document the revised hierarchy:

* Wallets
    * Wallet Programs
        * Full-Service Wallets
        * Signing-Only Wallets
            * Offline Wallets
            * Hardware Wallets
        * Distributing-Only Wallets
    * Wallet Files
        * [Previous text; nothing has been removed]

All the text in Wallet Programs and its children is new.  It describes the essential functions of a wallet program and how multiple programs can work together to fulfill those functions, as in the case of a signing-only wallet.
While cumbersome, using "parent private keys and parent public keys", and "child private keys and child public keys" here would allow accurate crossref links to be applied, otherwise it links to just "public keys".