add classes to describe provided functions and procs
add CodeProvider interface (and factory)
add EmptyProvider implementation of CodeProvider
use CodeProvider in MatrixGlobalScope
adapt interpretation to CodeProviders
add AbstractDeclarativeProvider implementation

Similar to many XText classes, this allows adding
new provided procs and functions by extending the
class and adding specifically named methods that
are retrieved via reflection and later called via
polymorphic dispatch.
add BuiltinCodeProvider with builtin print procs

Fixes #29.
add StdlibCodeProvider

Remove "default" import from ImportManager. Instead handle
stdlib references via CodeProvider. StdlibCodeProvider ex-
tends BuiltinCodeProvider. Configure it to be the default.
change usage of code providers and global scopes

Code providers are no longer specific to a ResourceSet. This allows
to drop the CodeProviderFactory. Instead, the methods to get funcs
and procs now have a Resource parameter.

Global scopes no longer need an ImportManager to be created. Instead,
they now require a Resource and create the ImportManager themselves.
AbstractDeclarativeProvider: cache provided code

Add a Cache<K, V> class and use it in AbstractDeclarativeProvider
to cache the return values of getFunctionsFor() and getProcsFor().
This is faster and avoids the previous problem where on each call
to these methods, the collect* methods were called again, adding
the created EObjects AGAIN to the providerResource (resulting in
a lot of duplicates).

Also, change the implementation of StdlibProvider (override the
collect*, not the get* methods) to take advantage of caching in
the super class.
Merge branch 'builtin-provider' into master

Fixes #31.