Add v3 dynamic cert template and logic

@jrbl - Stanford Fancy SoA changes

Includes fancy autoscale and centering code.

![stanford_soa](https://cloud.githubusercontent.com/assets/3364609/5308628/e1473810-7bcd-11e4-9d49-cae2b9af24cb.png)

If you set textcolor in these declarations, you'd only have to declare it below when you want to override it, right? And similarly for fontsize etc.? So let's set all the most common parameters for these, and then when we want to override them we can use an approach like:
```
styleArial = ParagraphStyle(with_everything_in_the_world_set_including_align_left)
.
.
.
####### Issued Date
# actually I'm not sure we need copy.copy() here; it's worth trying 
# to see if it works to just say dateStyle=styleSourceSansPro
dateStyle = copy.copy(styleSourceSansPro)
dateStyle.fontSize = 12 # because it's a little smaller than the default, which should be 14
dateStyle.leading = 14 # Because this is a little smaller than the default, which should be 18
# note we're not setting text color because it's already set to gray
dateStyle.alignment = TA_RIGHT # Because everything else will be left aligned and this will be right aligned
```
Come to think of it, if you set the defaults to be nice round numbers that are easy to calculate with, like fontsize=20, leading=10, then you can set these relative like this:
```
dateStyle = copy.copy(styleSourceSansPro)
dateStyle.alignment = TA_RIGHT
dateStyle.fontSize *= .75
# dateStyle.fontSize = dateStyle.fontSize * .75 # if *= isn't supported
dateStyle.leading *= 1.4 # with the same caveat as above
```
This latter form may be a little simpler to write and easier to read, particularly if *= is supported.

Clearly I mean this to be an example of a general pattern of transformation, it's not worth doing just for the date string, but it might simplify the style manipulations for all the other text too. Over the whole cert, even tiny clarifications can yield large improvements in understandability.