Add script to detect and remove unCish malloc-then-cast pattern

Also, apply it.
clients now send correct address for rendezvous point

Clients now send the correct address for their chosen rendezvous point
when trying to access a hidden service. They used to send the wrong
address, which would still work some of the time because they also
sent the identity digest of the rendezvous point, and if the hidden
service happened to try connecting to the rendezvous point from a relay
that already had a connection open to it, the relay would reuse that
connection. Now connections to hidden services should be more robust
and faster. Also, this bug meant that clients were leaking to the hidden
service whether they were on a little-endian (common) or big-endian (rare)
system, which for some users might have reduced their anonymity.

Fixes bug 13151; bugfix on 0.2.1.5-alpha.
Merge remote-tracking branch 'origin/maint-0.2.4' into maint-0.2.5
Add coccinelle script to remove pointless callocs
Merge remote-tracking branch 'origin/maint-0.2.5'