Approximate pure nash equilibria in weighted congestion games: existence, efficient computation, and structure