Make CalculateLabelFromRules() idempotent

Fix two bugs.  Make FizzBuzzResult.CalculateLabelFromRules() idempotent
and add bounds checking to ensure upper bound is equal to or greater
than lower bound for calculating a FizzBuzz range.  Also add tests to
verify these issues and fixes.