Context file camera

A new file camera that bakes additional/contextual information into the image. I found this additional information useful when debugging why a test failed and where in the callstack the image was generated.

To make this information even more useful, I added `Exception` param to the `ICamera.TakeScreenshot` interface. It defaults to `null`.

**Example**

![elementfinder_2014-11-03_15-00-59 png_130595004593300652](https://cloud.githubusercontent.com/assets/4949392/4884296/5c1620dc-636a-11e4-90f5-ef55f9a05af3.png)

**Usage**

```c#
_host = new SelenoHost();
_host.Run(x => x
    .UsingCamera(new ContextFileCamera(CameraFolderPath, typeof(TestAttribute)))
    .WithWebServer(new InternetWebServer("http://www.google.com/"))
    .WithMinimumWaitTimeoutOf(TimeSpan.FromMilliseconds(100))
);
```

I'm not too happy with the having to pass down the attribute type that decorate the test, i.e. `typeof(TestAttribute)` for NUnit. However I couldn't think of a generic way to handle this.