bugfix for cuda on windows

float2 type with volatile qualifier is causing missing copy constructor
compile errors on windows platform. Until, cuda cuComplex headers add
volatile versions of copy constructors for floatn types, the change
made in this commit is the work around.
changing variables names in reduce kernel for cuda backend
cmake changes for windows MSVC Projects

Modified cmake to generate better folder hierarchy inside
Visual Studio projects.
Merge pull request #140 from 9prady9/cuda_fix

bugfix for cuda on windows.
Merge pull request #142 from 9prady9/msvc_filters

Updated the Visual Studio Project folder structure. This will better match the current folder structure of the project.
Tests use google test present on system if BUILD_GTEST=OFF
Fixed regions unit tests

* Tests failing on Windows due to wronge type of input array
* Added parameter to af_regions to allow selection of output array type
Adding a new option to use system GTEST

- BUILD_TEST=OFF uses pre-built Google test from build directory
Merge pull request #146 from pavanky/gtest

Tests use google test present on system if USE_SYSTEM_GTEST=ON
Merge pull request #147 from pentschev/regions_tests_fix

Fixed regions unit tests
- Add blas as CPU backend dependency
- Remove BoostCompute library dependency (header only)
Update submodules
Added deviceprop functionality to CUDA and OpenCL.

* Placeholder for CPU
Changed REVISION to AF_REVISION
Merge pull request #152 from shehzan10/devel

Added af_deviceprop function.
Corrected arrayfire revision macro name.
correcting test data commit number

Had to do this because of the force push i did earlier
Merge pull request #153 from arrayfire/update_test_submodule

correcting test data commit number
Fixed merge conflicts.
Merge pull request #150 from bkloppenborg/findarrayfire_fixes

Improve FindArrayFire.cmake script