Initial commit of the registry

Uses interfaces on the endpoints to auto-register available endpoints and dynamically makes sources from that. Also contains auto-discovery code that allows the client to find other registries on the local network and automatically add sources to them.