Fix two constructor bugs

- Primary constructors should store their parameters to fields before
  calling the initializer, since the initializer may reference the
  fields.
- Constructors must return unit.
Fix return bugs

- Constructors can no longer return values
- Empty return expressions are now processed correctly by type
  analysis and the compiler