arti: Move all code from binary crate to library crate
This is apropos #375 (closed).
The newly-exposed API of the arti library crate is entirely unconsidered, so I declare it unstable. But hiding it seems quite unfriendly. Exposing it this way is a step towards letting people making an executable that is like arti but does something else too. It might also invite someone who actually wants to do this to restructure the code here (which isn't very complex) to expose the things they want.
I still think that at some point arti-config
ought to live in here. However, arti-config
has a considered API and it is uncomfortable to mix that with the mess that is here right now. And making an API for building arti executables is not a thing that is on our priority list right now. So I think the rest of #375 (closed) should be deferred.