Use a custom provider to get the presenter in generated proxies.

This is a proposal to customize the way how the presenter is loaded by the proxy. The motivation therefore are situations where you need to execute code or fetch data from the server **before** the actual presenter lifecycle starts. That is to say it's a proposal to prepend the current presenter lifecyle. 

Presenters are loaded from genrated proxy classes using an instance of `IndirectProvider<T>`. The concrete instance depends on the annotation used with the proxy interface:

- `@ProxyStandard` &rarr; `StandardProvider<P>`
- `@ProxyCodeSplit` &rarr; `CodeSplitProvider<P>`
- `@ProxyCodeSplitBundle` &rarr; `CodeSplitBundleProvider<P>`

This PR adds the annotation `@CustomProvider` to specify a custom provider. Just like the existing indirect providers, custom providers should specify a constructor which receives the GIN provider as specifed by the Ginjector. I hope the following code snippet makes it more obvious:

```java
@ProxyCodeSplit
@CustomProvider(SecurityContextProvider.class)
public interface MyProxy extends ProxyPlace<AdminPresenter> {}

...

public class SecurityContextProvider implements IndirectProvider<AdminPresenter> {
    private final AsyncProvider<AdminPresenter> provider;

    public SecurityContextProvider(AsyncProvider<AdminPresenter> provider) {
        this.provider = provider;
    }

    @Override
    public void get(AsyncCallback<AdminPresenter> callback) {
        // Fetch data from the server which needs to be at hand 
        // _before_ the presenter is loaded.
        provider.get(callback);
    }
}
```

See also the GWTP post at [1] 

[1] https://groups.google.com/forum/#!topic/gwt-platform/jAxPQQQ3Jtk