(1) Added some convenience constructors and (2) removed some of the "throws Exception" signatures in favour of throwing RuntimeException when there are real exceptions and using our own subclasses of Exception when we really mean to handle them. Eventually we should remove "throws Exception" from initAndValidate method, but must first do it in all the subclasses :(
Poisson needed empty constructor!
Merged in late commits to GC repo.