Tax uses Schema::throw_exception

throw_exception now used wherever appropriate in Tax, added tests for throw_exception & small changes due to perltidy.