Foundations of additive codes over finite fields