Add a "first" method to ChartDataSource and use it in Legend
This allows us to get the first valid item from a source. This is helpful when a source treats its items differently and a request for item 0 ends up not being a valid item, such as a HistoryProxySource with FillFromEnd fillMode.