Report spec

@jackparmer creating a PR to make adding commentary a bit easier!
I don't think you need to override `append` here, but you do need to override `__setitem__` and `__getitem__` to do an `isinstance(val, PlotlyReportItem)`