Don't error on an empty rewind buffer. Fixes #5

* Short-circuit if we hit length == 0 in pumpFrom
* Allows listener to connect, but pumps no data to them
ProxyRoom: Don't allow null values in metadata

* The Icecast writer doesn't know how to format metadata values that are null,
  so go ahead and replace them with empty strings
Fix passthrough for proxied stream metadata

* Make sure ProxyRoom metadata gets passed through to the listener if the
  stream's acceptSourceMeta flag is on.
* Expose acceptSourceMeta flag to admin
* FIXME: We're still not handling metadata 100% correctly...  We're using
  the current meta title as the stream title for new connections, when really
  that's probably just song information and we should always give our configured
  title as the "icy-name" header.
Master.Stream: Add `getStreamKey` function

In Standalone mode, the `Slave.Stream` object is given a `Master.Stream`
object as its source, rather than the `Slave.SocketSource` object that
it would get in a master/slave setting.  If preroll is enabled, the
preroll object checks `source.getStreamKey()`, which was defined on
`SocketSource` and on the actual source objects, but not on
`Master.Stream`. This fix adds the function to that class, fixing prerolls
in standalone mode.

(Thanks for the spot, @jcohenho!)
Merge remote-tracking branch 'origin/master' into BetterAAC