util: templatize Variable::make().
differentiator: node: add and use constructors for TaggedChild<> to avoid using braced-init-list (GCC 4.8).
differentiator: visitor-calculate: fix "uninitialized" warnings.
differentiator: visitor-simplify: addsub_multiply_by_common_denominator(): process the constant as a fraction with no terms.

Thus it will be easier to implement common denominator multiplication for constants
(i. e. calculate everyone's denominator's LCM and multiply every fraction by it).
differentiator: visitor-simplify: add options; factor out multiplication by common denominator into a separate function.
differentiator: main-taylor: add an alternative main() which solves the original homework assignment in required output format.