Resolved issue #2055

Remove the `double round(double)` in pymath.h for Win32 only by defining
`HAVE_ROUND` via the `-D` switch of `nvcc`.
The `double round(double x)` function is present in CUDA
6.5.13/6.0.37/5.5.22/5.5.11/4.1.28/4.0.17, so I think it's safe to remove
the one in `pymath.h`.
pep8
In the ShapeFeature, convert x.shape[1] to Shape_i. This will help compare shapes.
Add ShapeFeature.same_shape, that try to compare 2 var shapes.
Add local_useless_inc_subtensor.

Remove the IncSubtensor when we can infer all the shapes are the same.
Make opt local_useless_subtensor convert to subsample when we reverse.
Disable opt in some case discovered in new tests crash with the new opt.
Merge pull request #2060 from ziyuang/master

Resolved issue #2055
Merge pull request #2067 from nouiz/mixed

Mixed
[CRASH] fix crash on the GPU with {inc,set}_subtensor and broadcasting the value
Fix GpuAdvSub1 verbose and error message.
[CRASH] Make GpuAdvancedSubtensor1 work with an empty list of indices.

fix gh-2065
Completed TODO in as_tensor_variable which said to strip off leading broadcastable dimensions.
Added check to make sure the variable is of the user specified size after removing leading broadcastable dimensions.
Merge pull request #2075 from nouiz/gpu_inc_sub_crash

[CRASH] fix crash on the GPU with {inc,set}_subtensor and broadcasting t...
Fix pycuda test in FAST_COMPILE
[TEST] fix test in buildbot
[TESTS] fix tests in FAST_COMPILE mode.
Merge pull request #2090 from nouiz/buildbot

Buildbot
Move Assert to the GPU in both back-end.