Two functional enhancements and another sample server

- Allow the shell used for a server to be either a class or an
instance of a class.  That allows the server to either share info
between client connections (instance specified) or start with a
clean shell for each client (class specified).

- Allow the list passed to the "Engine" method to be a list of
port/ip pairs instead of just ports.  The previous version always
bound the server to "localhost".  That's still the detfault if no
IP is given.  But you can specify '0.0.0.0' for all IP's on the
system or a specific IPv4 address.

- The new sample server is a variation on the simple "echo" server
but using the base class of the shell instead of an instance to
demonstrate that difference between the two.  The two simple "echo"
servers listen on different IP's as well.