ENH: Add ISO3 Codes & safe_cc_only to io.wb.download #8482

This PR adds ISO 3-digit country codes, as well as an argument safe_cc_only to io.wb.download.

closes #8482 .

I will squash all, when appropriate/finished.  Looking forward to feedback.

#### Testing?

I'm a beginner when it comes to nose, testing and virtual environments. I've never used tox.
I manually tested wb.download(), from wb.py in Python 3.4 and Python 2.7.  I'm pretty positive that its unlikely that tests have been set up for wb.download anyway, but, I did run test.sh on Python 3.4.  

#### Version?

Please tag the issue, or this PR, with a version (0.15.1? 0.16?), so that I can update the right parts of the documentation. 
I can't get ```pd.read_json``` to work.  The World Bank responses are of the form:

```json
[
   {"page":1,"pages":1,"per_page":"25000","total":4},
   [
      {"indicator":{"id":"NY.GNS.ICTR.GN.ZS","value":"Gross savings (% of GNI)"},"country":
      {"id":"US","value":"United States"},"value":"17.7933251151429","decimal":"0","date":"2005"},
      {"indicator":{"id":"NY.GNS.ICTR.GN.ZS","value":"Gross savings (% of GNI)"},"country":
      {"id":"US","value":"United States"},"value":"17.4456668552402","decimal":"0","date":"2004"},
      {"indicator":{"id":"NY.GNS.ICTR.GN.ZS","value":"Gross savings (% of GNI)"},"country":
      {"id":"US","value":"United States"},"value":"17.2580393882146","decimal":"0","date":"2003"},
      {"indicator":{"id":"NY.GNS.ICTR.GN.ZS","value":"Gross savings (% of GNI)"},"country":
      {"id":"US","value":"United States"},"value":"17.995555464956","decimal":"0","date":"2002"}
   ]
]
```

Which doesn't fit into any of the orient modes (split / records / index / columns / values) ...because the pagination info.  The original author of the code you referenced, intercepts the data from the pagination info, with the ```[1]```.

I got ```read_json``` to actually parse the json, from a hacked up string, using ```orient='split'``` but even after I did, I ended up with a data frame which looked like this:

```
                                      country  date  decimal  \
0  {u'id': u'US', u'value': u'United States'}  2005        0   
1  {u'id': u'US', u'value': u'United States'}  2004        0   
2  {u'id': u'US', u'value': u'United States'}  2003        0   
3  {u'id': u'US', u'value': u'United States'}  2002        0   

                                           indicator      value  
0  {u'id': u'NY.GNS.ICTR.GN.ZS', u'value': u'Gros...  17.793325  
1  {u'id': u'NY.GNS.ICTR.GN.ZS', u'value': u'Gros...  17.445667  
2  {u'id': u'NY.GNS.ICTR.GN.ZS', u'value': u'Gros...  17.258039  
3  {u'id': u'NY.GNS.ICTR.GN.ZS', u'value': u'Gros...  17.995555  

[4 rows x 5 columns]
```

...which would require manually cleaning up anyway.

Is there something I'm missing about read_json?

If not, I think we should just leave the original ```json.load```