New Flattener3

Both Flattener2 and Flattener3 try to make zero shifts at the top and
bottom. Moved old flat2.py to flatcg2.py. Likewise, moved old flat3.py
to flatcg3.py. The new flat2.py uses Flattener2 and the new flat3.py
uses Flattener3.