Fixed bSmallCaps() to use position_maps and actually work.

The SmallCaps() native scripting function as implemented was entirely
worthless except for transforming any glyph it was given into a
tangled mess at the baseline.  This was due to the fact that it did
not populate a complete genericchange structure with position maps and
a smallcaps structure.

This change enables minimal useful operation of SmallCaps() using the
same values as appear by default in the small caps dialog box in the UI.
Added useful parameters to bSmallCaps().

Added four optional arguments to bSmallCaps:
      1. vertical scale
      2. horizontal scale
      3. vertical stem scale
      4. horizontal stem scale

These cover the most common needs without implementing the entire
range of parameters understood by FVAddSmallCaps.
Merge pull request #1049 from blipvert/fixes/18

Fixed bSmallCaps() to use position_maps and actually work.