Introduce NameServer interface

Currently there is no interface for NameServer. And all the parameters of the NameServer have default values. That means as long as clients put NameServer in driver constructor, no matter he binds it or not, it will be started. 

This PR is to introduce NameServer interface and rename original NameServer as NameServerImpl, so that if NameServer is not in a driver constructor and clients don’t bind NameServerImpl into driver configuration,  NameServer will be not started. 

Test cases are updated accordingly. 

This addresses the issue REEF-53 https://issues.apache.org/jira/i#browse/REEF-53?filter=-1