Simplified graphs generated for canonical slices

* When `step` is 1 and either `start` or `stop` is a boundary, the
  canonical representation of `slice(start, stop, step)` is now simpler

* Other simplifications in the more general case when `step` is a
  constant

* Fixed crash when calling `get_scalar_constant_value()` on a numpy
  array.

* Ensure that start <= stop in canonical slice representations, which
  makes it easier to compute their length.
PEP8
Added test for crash fixed in 5ff9796
Test for get_scalar_constant_value(empty array)
Replace hash of c_code by hash of all code,

including support code, in dynamic modules.
Use global hash in default nodename, so it is used in support code
Added more information on the issue corrected
Fix C code of GpuDownsampleFactorMaxGrad.

It was causing errors when running with cuda-memcheck, or when running
on Mac OS X.
Fix insertion of -arch=... when compiling with nvcc

It used to be inserted only for the first Op after GPU initialization.
Merge pull request #1307 from delallea/minor

Minor fixes
Merge pull request #1305 from lamblin/fix_nvcc_arch

Fix insertion of -arch=... when compiling with nvcc
Merge pull request #1301 from lamblin/unique_fct_names

Compute hash on whole source file
C code for GPUAdvancedIncSubtensor1.Handles one case to make it faster
Addressing code review comments.
Moving an assert out of for loop (perf optimization) and adding back a declartion of a CudaNdarray_inplace_add
Replacing assert with Py_ErrFormat so that exception stack is seen if assert ever fails
Addressing 2 code review comments
Merging the conflict
Use safe_new(x) instead of x.type() in scan grad.

This copies the test_value, making possible to use a test value
for sequences. Add test.
Merge pull request #1299 from delallea/canonical_slice

Simpler graphs for canonical slices