Make cperl-calculate-indent a little more pluggable

From the commit:

> `cperl-calculate-indent` is monolithic function. This makes things tricky if
> you just want to override the behaviour of one return type from
> `cperl-sniff-for-indent`. So... I've extended cperl-indent-rules-alist to
> allow for its holding a symbol to be called as a function.

> Also, made things behave as documented when the rules alist is
> with a number, that number is now treated as an offset, not a column number.
> 'nil is treated as 'absolute column 0'.

I've used this change to experiment with making:

```perl
my @foo = qw(
    some list of words
);
```

Indent in a blocklike fashion as above rather than with cperl-mode's current behaviour.