I feel like I understand the first two, but the second two I can't  grasp.  What is physically represented by the inside global address and  outside global address? is it a host? on who's network? an interface on a  router? who's router? which side of the router (inside or outside  network?) etc.
My Understanding:
Assuming my inside network is 192.168.0.0/24 and I'm trying to reach google's DNS at 8.8.8.8.  Also assuming that my ISP has assigned me public IP 150.0.0.1
Inside local - Address assigned to a host on your inside network (Usually a private address, assigned statically or via DHCP)
Example: 192.168.0.2
 Outside Local - Address assigned to your router's interface that connects to your ISP (Usually dynamically assigned by the ISP)
Example: 150.0.0.1
 Inside Global Address - Address assigned to the your router's interface that connects your inside network?
Example: 192.168.0.1
 Outside Global Address - Address assigned to the interface connected to the ISP on the destination network's router?
Example: 8.8.8.8
Another thing, is I found this graph that represents NAT.  The graph states that, when the packet is on the inside network, the source address is the inside local and the destination address is the outside local.  If the outside local is the IP address of the interface connected to your ISP, then why would it be a destination address?  My understanding is that the destination IP address never changes, that only MAC addresses change?
Is this stating that all packets destined to go outside your network must first be sent to your router's interface that is connected to the ISP (At which point the packet is rewrapped with a new source address and destination address now that it's been translated by NAT?)
http://www.cisco.com/c/dam/en/us/support/docs/ip/network-address-translation-nat/4606-8a.gif
I'm clearly pretty confused and I am rambling at this point haha.  Could anyone offer some clarification?