New style adjacency list

A lot of new isomorphism tests by @nickvandewiele  and I, as well as new tweaks to reading and writing adjacency lists.  Nick has added some nice consistency checks using a more rigorous PeriodicSystem class in rmgpy/molecule/adjlist.py as well as a parameterized isomorphism check for groups and molecules.  (Unfortunately after I forbade non-neutral molecule it stopped working and I had to write a work around: https://github.com/GreenGroup/RMG-Py/commit/499a7a69a97997274e309d24e5f88fdf3790409b  We should probably get rid of this eventually by modifying the test as it could be hiding actual errors. )

For more information on how the old adjlists get converted see the following commit: https://github.com/GreenGroup/RMG-Py/commit/48b63af73c1f8d14808683c906903f201c437168  

By default now groups will set a wildcard for lonepairs or charge if it is not listed.  This is internally stored now as an empty list, rather than a full list containing all the possibilities.  This makes it faster for isomorphism checks, and also prevents problems when we end up extending the wildcard list.

Also modified the toAdjacencyList() function to allow charges to be written for groups.