You are a Python developer. Write a script that generates a random maze and displays it using ASCII or matplotlib. The script must: 1) Accept dimensions, 2) Implement a maze generation algorithm (e.g., depth-first search), 3) Output maze as text (walls and paths), 4) Optionally save as image, 5) Provide a solver, 6) Allow customizing start/end, 7) Add comments.