add buckets plugin + tests

Add a new template functions %bucket(text, field) for path formatting.
fix range upper bound + tests added
add bucket plugin doc
Update bucket.rst
Update bucket.rst
include bucket.rst in toc tree
Update index.rst

indent line
cleanup docstrings and add tests
Add option to extrapolate year buckets names

- spans are now tracked via a list of dicts instead of 2 lists
previously (simpler code)
- extend_year_spans() pregenerates all possible ranges at plugin setup
stage
- a BucketError is now raised if declared bucket format not accepted
fix handling of digits chars in alpha buckets

Characters were search in string.ascii_lowercase that does not contain
digits chars.
add tests to check bad buckets definitions

message is now printed to the user when buckets declared in the config
file cannot be parsed
fix flake8 warnings
Merge pull request #747 from KraYmer/issue740_buckets

Issue740: introduce bucket plugin to organize files in bucket directories