Planetary Giant Impacts: Simulating Collisions and their Consequences