Refactor type inference.

* Add Environment type parameter to classes. Now it possible to define custom,
  more powerful environments.
* Add some docs.
* Add getEnvironment method to App interface.
Change version to 0.3 and add package docs
Add relaxed preparation methods
Simplify method names
Release v0.3
Update dfuntest version in README