Update surface.py

Updated version of surface.py. The method in the Slab class has been modified to allow for the enumerating of different termination sites in a slab. A unittest has been added to see if the .cif files generated to represent the slabs with different termination sites has been properly generated. I will email the necessary files in a folder needed to perform the unittests which are to be stored in pymatgen/core.