Checked Exceptions

This pull request:
* makes the Rx user's code cleaner.
* removes the necessity for wrapping all checked `Exception`s with `RuntimeException`s.
* is not a breaking change.
* lets the compiler help us find places where we've made mistakes.

It's benefit is more obvious in Java 8. before:
```
() -> {
    try {
        return new FileReader(file);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
```
after:
```
() -> new FileReader(file)
```

I made a new set of interfaces `Func<0..9,N>Checked` and `Action<0..9,N>Checked`.  The original `Func<0..9,N>` and `Action<0..9,N>` now extend from the checked version but remove the `throws Exception`.  Anywhere an observable operator already invokes `Func`s or `Action`s and already wraps that call in the try catch to handle Throwables than the checked version can be woven through.

I've also included a sample change where I used `Func1Checked` for `Observable::map(f)`.