do not append default template extension if ext() is undefined or blank

I noticed BTW that attr() doesn't allow setting the value of undef. Is that intentional?

Kelp::Base has:

```Perl
if ( defined $_[1] && !$readonly ) {
            $_[0]->{$name} = $_[1];
}
```

Can we change that to if (@_ > 1 && !$readonly) ?