First, what is the point of the resister (seeing how the photocell is basically a light sensitive resister)? Why couldn't the circuit just be 5v to photocell, photocell to A0?
I don't know anything about Arduino's but from looking at the circuit, I surmise that A0 connects to an input pin of the microcontroller. What's happening is that when light hits the photocell, its resistance decreases, so the A0 pin is pulled high, and the Arduino reads a "high" input. When there's no light input, then, you want to read a "low" input.
What happens is, with no light, the photocell resitance increases, and the extra resistor pulls down the A0 pin to ground, so the Arduino can read a 0 input. If there was no extra resistor, no matter how high the resistance of the photocell, it would still always pull up, and A0 would always be "high".
Second, if my project has already used the 5v pin (its for an lcd display) could I rig the circuit up to start at a digital pin (which would be set to output 5v) to photocell back to A0? If not, how would I power the photocell?
Again, I only know from the way the board is labeled in your diagram, but I expect that "5V" is a power supply pin. If it is, then you should be able to connect it to multiple loads, as long as the total current needed by those loads is not more than the board can supply (check the data sheet or manual for your board). But the photocell circuit shouldn't draw more than a few mA, so it should be safe to add this load to the load from the LCD you already have. You just need to find some physical way to connect both the LCD and the photocell to the same pin. One easy way would be to just solder three wires together to form a "Y"; connect one leg of the Y to the Arduino, one to the photocell, and one to the LCD circuit.
Edit
You explained that the A0 is an analog input pin for the Arduino.
In that case, what you're doing is using the photocell as one part of a resistor divider:
In your case Vin is 5 V, and R1 is the photocell, and R2 is the "extra resistor".
The voltage at Vout is connected to A0 of the Arduino so you can measure it.
The formula for the output voltage of the resistor divider is
$$
V_{out} = V_{in}\times \frac{R2}{R1+R2}
$$
If you remove the extra resistor, that's like taking R2 to infinity. You can see from the formula that in the limit as R2 goes to infinity, you get
$$
V_{out}=V_{in}\times R2 / R2
$$
or
$$
V_{out} = V_{in},
$$
meaning you'll always read 5 V at Vout if the extra resistor isn't there.
Resistor divider image from Wikimedia, Creative Commons Attribution Share Alike
First a little bit about short-circuits: Short circuit is a circuit which doesn't have any intentional current-limiting elements in the path of the current. The result of that is that circuit elements which we normally take to have zero resistance start acting as resistors and the usual mathematical model for power supplies breaks often resulting in lower than expected voltage and destructive overheating.
Because of the maximum current specifications of the microcontroller, you need a resistive element in the path of the current going from a pin. You can expect the pin to die by outputting 40 mA from it and if I remember correctly 200 mA from all pins at same moment. Nominal voltage for this system is 5 V, so let's see what happens if we calculate the current with 470 \$\Omega\$: \$\frac{5 V}{470 \Omega} \approx 10 mA\$. This happens to be nice and sane value for the current which will not damage the microcontroller. If you instead use 1 \$k \Omega\$ resistor, you'll get 5 mA, which is even safer and consumer even less power. Also those two values of resistors are relatively popular and at the same time provide small currents but not so small that you need to take capacitance of the traces into account when working with them.
In case of actually shorting lines, you should fully expect the lines themselves to have negligible resistance! This would result in directly shorting the pins, which as written in the quote, would result in dead pins. Also shorted lines often result in broken push-buttons, since large current has negative effects on push-button contact lifetime due to overheating and sparking. Instead of using short-circuits for connecting lines, the better way is to place a resistor near the ground of the line. This will limit the current when the line is powered up. By placing the resistor near the ground connection of the line, we ensure that the greatest voltage drop on the line is at its end, so if we short it with another sensing line using a push-button, the sense line sees full voltage.
Also pins set as input are in the so-called "high impedance" mode, meaning that they behave as if they were a resistor with very large resistance connected to ground. If you are 100% sure that the pin will only be a sense pin, then you don't need to put another resistor in front of it. Even in that case, it's a good idea to put a resistor because you might accidentally set a pin as something other than input and potentially cause a short-circuit. If you do place the resistor, keep in mind that there will be very little current going through the sense line, meaning that the voltage drop on the resistor will be very low which will result in the pin seeing full voltage.
If you'd like some more "advanced reading" you could take a look at the datasheet for ATmega328, which is one of the microcontrollers used in some Arduinos. In section 29. Electrical characteristics, you'll see that under Absolute Maximum ratings, the current per I/O pin is 40 mA and for total device is 200 mA.
UPDATE: Please don't confuse Absolute Maximum Ratings with operational ratings! HEre's notice from datasheet for ATmega32U4:
NOTICE:
Stresses beyond those listed under “Absolute
Maximum Ratings” may cause permanent dam-
age to the device. This is a stress rating only and
functional operation of the device at these or
other conditions beyond those indicated in the
operational sections of this specification is not
implied. Exposure to absolute maximum rating
conditions for extended periods may affect
device reliability.
Here are footnotes from page 379 of the same datasheet:
Although each I/O port can sink more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state
conditions (non-transient), the following must be observed:
ATmega16U4/ATmega32U4:
1.)The sum of all IOL, for ports A0-A7, G2, C4-C7 should not exceed 100 mA.
2.)The sum of all IOL, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA.
3.)The sum of all IOL, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA.
4.)The sum of all IOL, for ports F0-F7 should not exceed 100 mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater
than the listed test condition.
4. Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady
state conditions (non-transient), the following must be observed:
ATmega16U4/ATmega32U4:
1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100 mA.
2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA.
3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA.
4)The sum of all IOH, for ports F0-F7 should not exceed 100 mA.
5. All DC Characteristics contained in this datasheet are based on simulation and characterization of other AVR microcon-
trollers manufactured in the same process technology. These values are preliminary values representing design targets, and
will be updated after characterization of actual silicon
Best Answer
Your hypothesis is correct: in input mode, the pins have very high impedance, somewhere along the range of 10s of mega ohms. So there will be little current flowing into pin 7, and it is OK to use it as is. Note that pin 7 is NOT ground so there is no short circuit between power source and ground.
When you press the switch, current will flow primarily through the resistor. The voltage will rise and will be seen by pin 7 as a digital high.