SmartServer caches streamed packets to service multiple streams.
Modified the SmartFLVEncoder class to be a thread so we can concurrently service multiple streams. Access to the packet cache and ObjectOutputStream needs to be synchronized.