added ManaCost.parse(), fixed a handful of toString() bugs