embed small object in broadcast to avoid RPC

For most of tasks, the serialized data will small, such as less than 4k or 8k, we can avoid the RPC at all if the data was embedded in the Broadcast object it self.

With this patch, The size of task will be similar to that before we use broadcast for them, no RPC (but still cached, only one deserialization per executor)