resolves #289 #291 attributes as string or array

- includes tests for properly splitting on spaces
resolves #290 safe mode set using string, symbol or int

- this change makes safe mode resolution a lot more robust
Merge pull request #293 from mojavelinux/safe-level-as-str

resolves #290 safe mode set using string, symbol or int
Merge pull request #292 from mojavelinux/attributes-as-str-or-arr

resolves #289 #291 attributes as string or array
resolves #308 set proper encoding on input data

- set constant that determines whether to force encoding
- force encoding on all input data
- test to verify input data is properly encoded
- new rake task to run tests w/ US-ASCII default external encoding
check Encoding.default_external, not IO#external_encoding
fix warning
use explicit ruby in invoker test
small optimization
update travis config
Merge pull request #310 from mojavelinux/force-encoding

resolves #308 set proper encoding on input data
resolves #309 exclude attribute div if quote has no attribution

- also move block quote tests to blocks tests and cleanup
Merge pull request #311 from mojavelinux/exclude-empty-attribution

resolves #309 exclude attribute div if quote has no attribution
resolves #295 support preamble toc-placement

- also fix an invalid toc test
Merge pull request #296 from mojavelinux/toc-placement-preamble

resolves #295 support preamble toc-placement
resolves #297 support for abstract and partintro

- support for abstract and partinfo style on open block
- support for abstract and partinfo style on paragraph
- wrap text in paragraph with complex block style in simpara
- fix missing @ on field reference
- fix missing endlines for blocks output by result methods
- add text support to open block
- backend optimizations
validate partinfo & abstract usage; optimize templates

- validate that partinfo and abstract are used in proper location
- add tests for partinfo and abstract validations
- add argument to attr? & attr methods to look on node only
- don't look for style attribute on document
- template cleanups
Merge pull request #305 from mojavelinux/partintro-abstract-support

resolves #297 support for abstract and partintro
properly credit @nickh, update copyright