Many stylistic changes to enhance code readability

- Removed overriding @_ with 'local @_'.
- shift no longer unpacks sub args.
- Got rid of using __PACKAGE__, $_, (caller)[0] and friends.
- Use x modifier for regexes.
- Replaced $p, $r and other variables with meaningful names.