interp: fix interpretation of ambiguous "bind"

On some systems (at least ubuntu precise), the C++11 header <functional>
is indirectly included, which defines std::bind.  At this site, the
compiler selects this alternative instead of the socket primitive,
which can be unambiguously referred to as ::bind.
Avoid use of C++11 feature to initialize arrays and aggregates

Instead, use memset() to achieve initialization to all-bits-zero.
This is fine so long as the arrays and aggregates have only POD type.
interp: provide a constructor for block_struct

.. which can't be memset() due to having some non-POD members such as
remappings.
interp: rely on zero-arg constructor of setup_struct::blocks