Renaming Observable to SodiumItem

1. Adding description to SodiumItem and IListener so the caller can add
a textual description to Events, Behaviors, and Listeners, for tracking
purposes
2. Adding AutoDispose and AllowAutoDispose to the SodiumItem, that will
be called by Metrics.AutoDispose to free up allocations that haven't
been disposed of yet.