Improve regularity of STObject and STArray [RIPD-448 and -544]

- reduce duplicated code using template implementations
- replace BOOST_FOREACH with C++11 for loops
- remove most direct calls to new
- limit line length to 80 characters
- clearly identify virtual and overridden methods
- split STObject and STArray into their own files
- name files after the class they contain

I'm not sure what went wonky with the visual studio project stuff.  I all did with that was run the scons build...

@nbougalis @vinniefalco 
Hi Vinnie, Clang wouldn't let me return unique_ptr <STObject>. I tried that first.  This seemed like the next best thing, since I'm only moving one pointer.