Current sense circuit for 0.1uA to 100mA dynamic range
You could do something like this: 







simulate this circuit &ndash; Schematic created using CircuitLab

This would drop a maximum of about 0.7-0.8V at 0.1A (mostly due to D1). 

You would take the measurement VM1 for VM1 &lt; 100mV, say, and use VM2 for higher currents. VM1 is 10uV at 100nA, up to 100mV at 1mA. Then VM2 is 10uV at 100uA up to 10mV at 0.1A. You could use two ADC channels and two in-amps.
These are just rough ideas- you might want to increase R1 to 200 or 500 ohms to reduce the overlap and increase the signal at 100nA.  

If the voltage drop was deemed excessive, one way to deal with it would be to use a P-channel MOSFET in parallel with D1 and switch it with a comparator actuated by VM2. However that would have a certain response time, and would inject some current spikes into the measurements at switching. Or use a different arrangement with V1 servo'd to maintain the output voltage within spec- that way the voltage drop wouldn't matter provided V1 could produce the extra voltage.