Current Sensing with uController and Op-amp
While your idea is perfectly reasonable in general terms, you need to do a little rethinking.


  Does the idea of this circuit work?


Yes, and in general using a sense resistor is the standard approach.


  I am worried about people switching to the nA range and then there
  being a larger current drawn and thus blowing the circuit.


You've got it backwards. If you switch in the nA resistor (10k) what will happen is the resistor will limit the current to the target device to such a low level that it will stop working. If the target power supply is, for instance, 3.3 volts, the maximum current which can flow is 3.3/10,000, or about 330 uA.


  Would i require some sort of fuse or current limiting on each resistor
  leg? But then i feel this would alter the precise resistance of the
  leg.


For your application I don't see why you'd need protection (although Murphy is waiting in the wings, rubbing his hands in anticipation).


  Need help understanding what precision of current i would get for each
  resistance leg if the ADC is 10-Bits at 3.3V?


10 bits is 1024 possible levels. So, for instance if your mA range is scaled to 450 mA, the resolution of the A/D will be 450 mA/1023, or 0.44 mA per step. 


  Is there any way to automate the switching of these resistors, almost
  a dynamic range? But i feel this would be dangerous.


You can use almost any switching device which can be driven by the interface device. However, particularly in view of your apparent inexperience, I'd advise small relays.

With your questions out of the way, let me address a few other problems. The first is the mismatch of full-scale ranges caused by your resistor selection. In general, for each range you should provide the same voltage drop across the sense resistor. Look at your proposed setup. The mA maximum voltage is (.01)(.45) or .0045 volts. This will require an op amp gain of 3.3/.0045 or 733. For the other scales, full-scale voltage is 1 mV, which will require a gain of 330. You'd do better to use something like a .02 ohm for your 450 mA scale, and call it a 0 to 500 mA range.

At these low voltages, you will need to use what it called a Kelvin connection at the sense resistors, and you're probably best off providing a dedicated op amp for each resistor. You haven't specified the supply voltage you're monitoring, but I assume it's something like 3.3 volts, so there is no danger of frying an op amp if you inadvertently get the wrong scale. As long as the op amp is powered by a voltage which is comparable to the supply voltage of the device being monitored, you really don't need to worry about damaging anything. 

On the other hand, you are using only 3 ranges to handle about 9 orders of magnitude (1 nA to 450 mA), and this is really asking for trouble. When you switch ranges, the voltage drop across the resistors will change by 3 orders of magnitude. While this isn't a killer in your particular case, since the voltage drops are very low, it's a bad habit to get into.

As for your choice of op amp, the MAX4239 is perfectly reasonable, but with a few considerations. First, the 4239 must be run from a higher supply voltage than the test supply. Look at the data sheet, "Input common mode voltage". The 4239 is only rated for inputs less than 1.3 volts below the power supply. For a 3.3 test supply, you'd want a 5 volt supply on the 4239. Just as important, you need 3 4239s in an instrumentation configuration. I'm sure you looked at the data sheet example circuit







simulate this circuit &ndash; Schematic created using CircuitLab
and thought "That could work." Nope. Sorry. Think about the constant current being pulled to ground through Ri and RG. If you use a gain of about 1000, with 100/100k as the resistors, a 3.3 volt supply will produce a constant current of 3.3/100k, or 33 uA. This will completely swamp your nA scale.