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.
Allow script filename to omit the extension if it is .ff or .pe.

When processing a call in the native scripting environment, and no
script or built-in function is found to match, look for a script
ending in the extension .ff or .pe.  This allows scripts to be used as
function calls without needing to specify the extension in the source.
Merge pull request #1049 from blipvert/fixes/18

Fixed bSmallCaps() to use position_maps and actually work.
Merge pull request #1051 from blipvert/fixes/19

Allow script filename to omit the extension if it is .ff or .pe.