Display legal sets per format

The banned lists are organized hierarchically by format. In addition, the list of legal sets per format are interleaved with the banned and restricted items.

A couple of concerns I had with my code are:
* For the headers of BannedItems, I created keys with negative numbers to be passed in as legality, in order to set the legality to an empty string, or set it as "Legal Sets" to be the header for the legal set lists. This seems like I am overloading responsibilities on the legality int.
* There are a couple of if statements in order for the setsCursor to properly populate the lists when the cursor is empty but the setsCursor is not.

It all works. I just feel like I had to do some "hacky" things because I could not come up with a more robust solution. Of course, if you would like me to make any changes, or come up with different solutions I would be happy to. Otherwise if you are happy with it, then so am I.

Thanks.