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 Micky, thanks for the comment.  Personally, I prefer the parens as is.  I don't have operator precedence committed to memory.  This way I can look at the parens and know what's going on.  If I remove the parens I have to look up operator precedence when I write the code.  If I read the code without the parens I usually just assume the developer knew what they were doing (and sometimes that's not a good assumption).  But, yes, the parens add visual noise.