well, 1 and 2 have pretty much already been implemented in the 5th Gen generator. It shows learned moves, tm's, and egg moves, so you are free to create you own set. Also, you can generate pokemon by name and number.
I already wrote an entire interface and procedure to export teams to PokeLab...