Back-port neod3 into main repo.

This is to make it easier to keep developing before neod3 has been
properly released as a standalone library.

Currently neod3 is not wired in to the main code in any way.