2. Scripting. I've made a script that would randomly delete non-border edges, and then clean up any verts that were on a straight line, ie not holding together a corner.
1. best way is probably make a short mel script and bind Q to toggle between Lasso and standard click to select. 2. don't know... not sure if it's possible 3. Polygon menu set, Mesh->Cleanup...