Move the newsbuilder script logic to a dedicated class (fixes #29)

I've moved the `newsbuilder` script code into a separate class and added tests for it and its options.

This'll make it easier to implement #11, #18, and #28 

Fixes: #29