Correctly treat remaining factors in optimization

instead of asserting they did not exist.
Generalize optimization to more inputs in mul
Fix compilation crash reported in gh-1518 for gpujoin.
Merge pull request #1520 from nouiz/gpujoin

Fix compilation crash reported in gh-1518 for gpujoin.
Fix the tutorial to make it work with python 32 and 64 bit.
Remove ordereddict warning from tutorial
Fix the detection of cpu vs gpu in the tutorial.

new op wasn't added there.
make sure the directory exist.
Provide a better error message for pydot bug.
Add test for the opt local_dot22_to_dot22scalar
Make local_dot22_to_dot22scalar opt work in one more case.
code cleanup.
Merge pull request #3 from nouiz/lamblin-fix_1507

Add tests and opt one more case.
Make the test code as the tutorial code.
Merge pull request #1521 from nouiz/fix_tutorial_int32

Fix the tutorial to make it work with python 32 and 64 bit.
Merge pull request #1515 from lamblin/fix_1507

Fix in local_dot22_to_dot22scalar
Merge remote-tracking branch 'upstream/master'