Propagate exceptions on @Background/@UIThread annotated methods

Related to #646

Instead of only logging the exceptions thrown in `@Background`/`@UIThread` blocks, which make them invisibles to exception handlers, a decision has been made to propagate them. 

Requires a big warning in the 3.0 change log :smile: 

The generated code : 

```java
 @Override
    public void emptyBackgroundMethod() {
        BackgroundExecutor.execute(new BackgroundExecutor.Task("", 0, "") {


            @Override
            public void execute() {
                try {
                    ThreadActivity_.super.emptyBackgroundMethod();
                } catch (RuntimeException e) {
                    Log.e("ThreadActivity_", "A runtime exception was thrown while executing code in a background task", e);
                    throw e;
                }
            }

        }
        );
    }
```