typing: allow `new` on interface and abstract classes that have a `new`-factory

Signed-off-by: Jean Privat <jean@pryen.org>
typing: `new`-fatories are like top-level methods

Signed-off-by: Jean Privat <jean@pryen.org>
typing: ANew accepts only `init` on concrete class

Signed-off-by: Jean Privat <jean@pryen.org>
tests: add base_new.nit

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update some tests because buggy `new` are let untyped

Signed-off-by: Jean Privat <jean@pryen.org>