Support nodes with mirrored transforms (negative scales).

@davideaster gets the credit for this one (I am just committing it for him)
Thanks to @scottnc27603 for fixing a bug in our code for particle systems

This fixes issue [#1746](https://github.com/mrdoob/three.js/issues/1746) without much added complexity.

I have a confession to make ... I wasn't able to get the build to work on my machine.  So, we actually made the changes in the `three.js` file, verified that it works, and then I painstakingly went back and edited the individual files, double-checking that I got all the edits correct.  So, it's only sort of tested.

Any suggested improvements to my process would be appreciated (well, I guess the best thing would be to get that build working ... the error when running both `build.bat` and `build_all.sh` was:

    Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/javascript/jscomp/CommandLineRunner : Unsupported major.minor version 51.0

)