add new socket config option to bind to a specific interface by name

This can be used for example to limit which device to bind when
binding on IN_ADDR_ANY (0.0.0.0) or IN_ADDR_BROADCAST (255.255.255.255)
on a multihomed machine.

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
adhere to project coding standards

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
no point binding a unix socket to a device

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
also support interface through the CircusSockets manager class

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
call CircusSocket using keyword arguments as that is what it uses

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
also accept umask as an argument for consistency

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
add test to verify that the 'interface' config options is properly passed through to the underlying socket object

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>
Merge pull request #494 from asteven/bind_to_device

add new socket config option to bind to a specific interface by name