First concept for type declarations

A simple two-valued custom type can now be declared & used.

```coffee
Boolean = enum { True(), False() }
x = Boolean.True()

# Simulating a clean impl of the built-in type
false_ = Boolean.False() # Inferred as Boolean
true_ = Boolean.True() # Inferred as Boolean

y = true_ # Inferred as Boolean
```