Adjacency list I/O edits

A series of changes to the reading and writing of adjacency lists.

Two items I'll bring your attention to for review:

1. I changed the meaning of the wildcards Ux Lx and Ex to also include 0,
eg. Ux is equivalent to U[0,1,2,3,4]  instead of U[1,2,3,4] as it was previously.
Hope that's ok. I don't think the wildcards are actually used yet anywhere, so it probably is.
Thoughts, @bbuesser?

2. The most recent commit attempts to set multiplicities from old-stle adjacency lists, eg. if someone went to the trouble of saying it's `2S` as opposed to `2`, then we set the species to be a singlet. However, there's a problem with at least one kinetic library (Nitrogen_Glarborg_Gimenez_et_al.py) which has got C3H as containing a *singlet* biradical on one carbon and 1 radical on another. The current code sets the species to be a singlet because of the singlet biradical, but then chokes on the odd number of electrons. Some fix required.