Ukrainian President Zelensky has signed a bill making bitcoin and other cryptocurrencies legal, establishing regulatory agencies and investor protections.