Feature request 9

This pull request addresses feature request R9:

> When using Java methods within attribute evaluation position it
> should be possible to do this without having to specify the FQN.
> Using the FQN all the time visually clutters rule definition and
> thus it should be possible to specify imports.

## How is this feature request implemented?

1. The meta model has been adapted, `Rule` now contains the attribute
   `EList<String> javaImports`.
    This allows specifying java imports relative to one rule by providing
    a list such as `["java.util.Random", "java.util.regex.*"]`

2. The JavaScript Engine has been wrapped using the decorator pattern. This
   allows adding customized methods, such as 
      
      `eval(String script, List<String> imports)`

The imports are implemented by means of [JavaImporter] and thus the above list desugars
to:

    (function() {
      with (new JavaImporter(java.util.Random, java.util.regex)) {
        return <EXPRESSION_TO_EVALUATE>;
      }
    }).call(this);

which is an anonymous function, wrapping the expression to evaluate with a modified
activation context (`with`). The function is immediately called (which is a common
pattern in javascript to introduce a new variable scope).

[JavaImporter]: http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/#jsimport