Dev Docs: Describe P2P Messages That Request Or Reply With Data

P2P Reference Preview: http://dg0.dtrt.org/en/developer-reference#p2p-network
P2P Examples Preview: http://dg0.dtrt.org/en/developer-examples#p2p-network

Adds to the devel reference page detailed documentation on the following messages: block, getblocks, getdata, getheaders, headers, inv, mempool, merkleblock, notfound, and tx.

Adds to the devel examples page an example of requesting and parsing a merkleblock message.

Adds to the devel docs overview pages links to the above two new P2P sections.

Tweaks the autocrossref plugin ignore pattern to not crossref in the middle of a GIF image name; this allows the inclusion of animated GIFs.

Note: I'm working on documenting the remaining P2P messages in a separate branch.
@saivann Hmm, it feels better to me to use the table to define the conditionals the way you might write a recursive function rather than use it to explain how the function will look as it operates over the tree.  For example:

    process(node) {
      if (flag==1 && type == "non-txid" ) {
        return(hash(process(left-child) + process(right-child)))
      }
     [...]
    }

Although I think describing that descendant nodes may need to be hashed before this node is processed may help people who only read the table, I think the way the current version describes that behavior in detail in one of the following paragraphs allows us to keep the table neat and also be very clear.

Does that make sense?