Add an NL writer. Requirements: - Reusable: not tied to a specific problem representation - Complete: should support both text and binary format and all NL features - High performance This can potentially be used in https://github.com/casadi/casadi/issues/755.