Move basic instruction fee management to FeeStructure

so this is pretty horrible - two logically similar portions of the fee calculation are split up into not only separate locations but separate classes & files.