SPIR Backend signs of life (from Intel)

Hello, 

Here is some progress on the SPIR backend. It works for many of the tests on windows. I have not been able to get a working implementation of OpenCL SPIR to test with on Linux. Forthcoming pull requests should be much smaller and more frequent!

Here is a high-level list of changes:

- Modified the compile_to_src method to return vector<char> instead of string to accommodate binary data (from SPIR). I tested this change with the PTX backend successfully on Ubuntu.
- SPIR device code generator
- CMake build system is a work in progress. It builds the core halide libraries and tests on Windows successfully, other use cases are untested. I plan to make further contributions to this mini-project as I make progress with the apps for the SPIR backend
- I have not yet been able to test the ARM or NaCl backends yet.

Lastly, the commit history might be a bit wacky for these changes. I have had to move/copy around between several repos while I got my internal git server situation sorted out. Also, I'm fairly new to git, so if I'm making a blunder here, please let me know! It seems like it might be better to review the changes in this repo before accepting the pull request, or possibly pulling this into a different branch.

Thanks!
Dillon