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.
@harding It's indeed easier to understand the "private key / public key" logic I guess. I think I was only worried this could confuse/conflicts with the "conceal your public keys" argument for not re-using addresses. But I don't have a strong opinion here. About the GreenAddress example, IIRC they use P2SH, so the final transaction still conceals the public keys behind a multisig address. Although it is true that public keys are sooner or later revealed in all cases anyway.