Implemented alternative dotfile dirs via mask mechanism
Each mask is appended to DOTROOT to create an alternative DOTROOT path,
and finally to link target. Therefore, you can have shared structure
like this:
dotroot/fooapp
dotroot/barapp
dotroot.config/janeapp
dotroot.config/aliceapp
dotroot.local/share/janeapp
dotroot.local/share/fooapp
The first two examples work just like before, but if masks ".config" and
".local/share" are defined, the rest is treated specially. Final
mapping looks like this:
~/.fooapp -> dotroot/fooapp
~/.barapp -> dotroot/barapp
~/.config/aliceapp -> dotroot.config/aliceapp
~/.config/janeapp -> dotroot.config/janeapp
~/.local/share/fooapp-> dotroot.local/share/fooapp
~/.local/share/janeapp -> dotroot.local/share/janeapp
This allows for quite a good flexibility of how you define your shared
structure to reflect habits of many common applications while retaining
ease of deplyment.
Note that:
* `.config` and `.local/share` masks are defined by default
* you can provide your own by using one or more `--mask` arguments;
this, however, removes the default ones
**Warning:** Potential clases between masks like ".local/share and
".local" are **not** solved within script. Avoid that. Currently
it's an undefined behavior.
Added perlcritic.cim, my own clone of pep8.vim using Perl::Critic
In order to make it work, you need to:
* install Perl::Critic
* add bin/perl_critic to your path
Note that `perlcritic` script name is already taken by wrapper
script that comes with Perl::Critic itself
* if dotfiles are shared by git, it will ignore
all files under dotfiles/git-universe/private
* if you use other sharing mechanism, you need
to exclude these files other way