Change FnOnce to Fn to satisfy object safety

With recent changes, FnOnce does not work as a boxed trait anymore since
self is taken by-value and this is disallowed by the object safety
rules. According to Niko, this should be remedied by something like
a special BoxFn type. Another alternative is to use std::thunk::Thunk.
Simplify run; we can use for loops with Fn now
Test that morphisms can be run more than once.
Formatting and comments
Implement overloaded calls
Remove obsolete license attribute
Bump version to v0.1.0