WIP: Guided filter

This implements the guided filtering routine for edge preserving smoothing. The website is here: http://research.microsoft.com/en-us/um/people/kahe/eccv10/ . This is *not* based on the code provided there.

This is just the basic functionality with an example and (some) tests. I'd appreciate some comments and thoughts before I move any further with this.

Todo
1. Implement a transform.integral based averaging filter so runtime is approximately independent of window size.
2. Implement the option to use the covariances between colour channels as described in the ECCV paper.
3. Profile memory usage and give a better guide to the user.
4. Create some benchmarks and give a comparison with other options in skimage, such as the bilateral filter.

Some examples from the example script:
![noisy_square_self_guide](https://cloud.githubusercontent.com/assets/8400977/3945968/927b1906-2658-11e4-989c-04f22befb22f.png)
![denoised_immunihistochemistry](https://cloud.githubusercontent.com/assets/8400977/3945970/99b6916e-2658-11e4-8f44-7baa616f3a0b.png)