Core API change: access static resources (#692).

BREAKING CHANGE

The Core's `Plugin` interface has changed.

1 renamed Method:
{{{
getResourceAsStream() -> getStaticResource()
}}}
The method's semantics has also changed in 2 aspects:
    - when no such resource was found an exception is thrown (instead of returning null). This makes errors more obviuos, in particular when streaming a resource to the client. A bad resource name is reported through an exception instead of letting the browser fail silently.
    - the thrown exception is a runtime exception (instead of an IOException), so you're not strictly required to catch it.

1 new Method:
{{{
boolean hasStaticResource(String name)
}}}
Use this to check if the plugin provides a static resource with the given name. If this method returns true you can be sure that `getStaticResource()` will not throw an exception.

In preparation of "Plugin framework: easify access to plugin's own resources".

See #692.