Restructure attach and detach

To make the control flow more obvious.
Route multicast packets across the weave network

Add a route to send multicast packets to ethwe and so across the weave
network.

Without that, multicast packets get sent to the default route, i.e.
to docker's eth0 interface, rather than across the weave network.
So IP multicast doesn't work between containers on different hosts,
even though weaver supports it.
Restore comment that got lost when rearranging code
Merge pull request #92 from dpw/87_multicast_route

Route multicast packets across the weave network
automatically fetch dependencies
Included where to put the repo in the instructions

Just in case, like me, the person following the instructions does not
know go all that well. You can make it work without doing things
exactly this way, but you may not get what you expect (because it
might, for example, fetch the weave code from github instead of using
the directory you're in).
Simplified cloning instructions

The package name and directory to clone into are almost the same.
(The previous revision also neglected to tell you to cd into the repo
dir)
Merge pull request #95 from squaremo/gopath-instructions

Cloning instructions
Refactor add_nat_rule into add_iptables_rule that is more general
Add iptables rule to forward traffic across the bridge, to avoid ufw blocking it
Improve robustness
refactor: order functions by dependency
refactor: keep bridge name abstract
Merge branch '94_iptables_for_ufw'

Fixes #94
check whether a container has died with docker rather than ps
since that means one less dependency on running 'weave' in the same
namespace as docker