Move scoped defined names to worksheets
Defined names are currently stored globally. This was done when refactoring because this is how things are stored in the XML but it makes managing names clumsy, not least because the association with the worksheet using a vaguely defined "scope" variable, which is the 0-based index in the worksheet part.
Seeing as we now have DefinedName lists, this can be instantiated in the worksheets and concatenated when writing. It also means we can worry less about duplicate names and, if sheets are rearranged or deleted we don't need to care either.