Added gem type
Added swapping

Changed from list of ints to list of gems
Naming: piece->tile
Added a nice little marker
Use vector instead of x/y vars