@config to @_config

Don't clobber an @config instance var
call Hash#initialize from Registry

This allows passing a default block. Also changed fetch to [] so default
block is used.

This removes the ability to set the registry id in initialize. It wasn't
being used, and the _id can be set conveniently with an attr_writer.
allow class config override in instances

Now configuration can be overridden for specific instances, eg

Telecine::Notifier.endpoint = "tcp://127.0.0.1:58000"
other_notifier = Telecine::Notifier.new
other_notifier.config.endpoint = "tcp://127.0.0.1:58001"

This changes the semantics of #config slightly:

It no longer returns the same object as .config
It is no longer valid to attach a callback to it expecting to get
notified about class-level config changes.

Instead of

on_configure config do ... end

use

on_configure self.class.config do ... end
note about broadcasting config changes to children
refactor registry publish

Consolidate notifier publishes to one place
update registry specs for new args
update configuration specs for inheritance
publish to child configs

Keep track of config children (instance configs) and publish to them
when the parent changes. Uses WeakRef so if a child goes out of scope it
is removed.

This invalidates the earlier note about

on_configure config do ... end

which should work now.