Set decorators optionaly banged

Introduce the `@!` syntax in order to specify that a decorator returned function
is constant.

As you know, a simple decorator is expanded like this :

```golo
function decorator = |func| -> |x| -> func(x)

@decorator
function identity = |x| -> x

function expanded = |x| -> decorator(|x| -> x)(x)
```

A **banged** decorator is now expanded like this :

```golo
function decorator = |func| -> |x| -> func(x)

@!decorator
function identity = |x| -> x

function expanded = |x| -> decorator(|x| -> x)!(x)
```