optimize callout cataloging and substitution

- don't catalog callouts for indented paragraphs
- only sub callouts for block if callouts were cataloged
- when setting option, also set #{name}-option
- don't use option array internal, but rather csv
refactor subs handling on block

- add subs property to abstract_block to hold subs
- resolve subs after block is built
- don't look for callouts where they shouldn't be found
- disable callouts for block if not are found during scan
- add basebackend? to Document to check basebackend value
Merge pull request #613 from mojavelinux/subs-refactor

Subs refactor