Has "hacker" still a neutral/positive meaning or has it definitely gained a negative reputation?
Among the general public, hacker still has a negative connotation. With the exception of "life hacks", a fairly new phenomenon, the most usual use of the work hacker in media is related people who commit crimes by computers or other advanced electronic devices.
When did this semantic change happen?
This happened because of years (decades) of media coverage. From my understanding, it started mostly in the late 70's or early 80's, and has persisted to the current day. Since the media considers anyone that's extremely skilled with computers a hacker, and most of what they report are crimes, the negative connotation was bound to happen sooner or later.
What terms are commonly used instead of "hacker" with a positive connotation?
Among ethical hackers, hacker is the preferred term, while they use negative terms for other types of "wannabees", such as "script kiddies", "crackers" (people that crack a system for malicious intent), and so on. Real hackers are offended when you include criminals in the same group as them, the same as you'd be offended if you were accused of something you didn't do. Here's the Jargon File's definition of a hacker (which is the hacker's definition of a hacker):
hacker: n. [originally, someone who makes furniture with an axe]
A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who
prefer to learn only the minimum necessary. RFC1392, the Internet
Users' Glossary, usefully amplifies this as: A person who delights in
having an intimate understanding of the internal workings of a system,
computers and computer networks in particular.
One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
A person capable of appreciating hack value.
A person who is good at programming quickly.
An expert at a particular program, or one who frequently does work using it or on it; as in ‘a Unix hacker’. (Definitions 1 through 5 are
correlated, and people who fit them congregate.)
An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.
[deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence password hacker, network hacker.
The correct term for this sense is cracker.
The term ‘hacker’ also tends to connote membership in the global
community defined by the net (see the network. For discussion of some
of the basics of this culture, see the How To Become A Hacker FAQ. It
also implies that the person described is seen to subscribe to some
version of the hacker ethic (see hacker ethic).
It is better to be described as a hacker by others than to describe
oneself that way. Hackers consider themselves something of an elite (a
meritocracy based on ability), though one to which new members are
gladly welcome. There is thus a certain ego satisfaction to be had in
identifying yourself as a hacker (but if you claim to be one and are
not, you'll quickly be labeled bogus). See also geek, wannabee.
This term seems to have been first adopted as a badge in the 1960s by
the hacker culture surrounding TMRC and the MIT AI Lab. We have a
report that it was used in a sense close to this entry's by teenage
radio hams and electronics tinkerers in the mid-1950s.
While you can use terms like "white hat" or "ethical hacker" as a positive connotation to "outsiders," the truth is that "ethical hacker" is considered redundant, since hackers are, by the subculture's definition, ethical, and most hackers (probably) wouldn't be caught wearing a white hat, unless they really felt the need for irony.
When you're speaking about criminals, try to avoid the term "hacker," because they're not part of that global community/subculture-- there are more appropriate terms for them, even if you might have to explain what you're talking about. The correct term to use when speaking about the global community of skilled computer enthusiasts is "hacker."