Remove 'public abstract' from methods in IMoney.java

By default, methods in an interface are public and abstract.
Closes #1033
Make ErrorCollector#checkSucceeds generic

Closes #1013