Client side refactoring

-- Introducing a EurekaClientRegistry which feeds to all users of the client.
-- Separated eureka-server, eureka-read-server and eureka-write-server
Yes the constructor should flatten the interest a priori rather than doing it in `flatten()`, will make the change.