nbconvert: Latex template refactor

I'd like as much input from everyone as possible.  It's a good time to make sure feature X won't be too hard to implement in the future.

## Goals
- Minimize future pull request for latex style changes
- Separate working parts of the templates
- Best effort to de-obfuscate the latex

## Motivation
- #3989 
- Closes #3866 
- #4041 
- #4090 
- #4034

## Design
Conditional inheritance is used select an output style.  This may seem strange, but it is required to allow inheriting output templates to override media blocks and those blocks to be used by the output style.  It also is a nice way of circumventing the need to require a cell style template per output template.

![drawing](https://f.cloud.github.com/assets/3292874/1083918/16fb3fc0-15a3-11e3-99ec-6aba7d2be1e8.png)

## Features
- 4 cell styles
    - python 
    - ipython 
    - black & white python       
    - black & white ipython 
- 2 output templates
    - report
    - article

---------------------------------------------------------

### python cell style
      
![python_colored](https://f.cloud.github.com/assets/3292874/1083827/4b585638-15a1-11e3-8f2d-db38277c0403.png) 

---------------------------------------------------------
      
### ipython cell style
      
![ipython_colored](https://f.cloud.github.com/assets/3292874/1085507/eb6ad160-15d2-11e3-8c63-4e2913a84c28.png)

---------------------------------------------------------
      
### black & white python cell style
      
![bw_python_colored](https://f.cloud.github.com/assets/3292874/1083834/6e7e2e44-15a1-11e3-8815-d845ab09ef20.png) 

---------------------------------------------------------
      
### black & white ipython cell style

![bw_ipython_colored](https://f.cloud.github.com/assets/3292874/1085506/cd6af1a4-15d2-11e3-9405-33cc893f73c2.png)