make Segment typeclass Squashed commit of the following:

commit e155a9640a43214ccc0e9e4f7d3711ff65ba03a3
Author: josiah14 <praenato14@gmail.com>
Date:   Mon Nov 24 01:16:49 2014 -0600

    minor bug and lint fixes

commit 6352cd611103ea889914b5209062c1cbfb06e399
Author: josiah14 <praenato14@gmail.com>
Date:   Mon Nov 24 01:08:07 2014 -0600

    commend out Bash.hs until implementation is ready.  Change GitComm to be generic

commit 602584a40c2df3bf9413251a5fb0bae975bb6142
Author: josiah14 <praenato14@gmail.com>
Date:   Mon Nov 24 00:49:49 2014 -0600

    Clean up code and get it working.  Minor lint fixes. Prepare Bash prompt builder

commit fb1c25b87085ebf1ffc9d745735b5c9f8049fdf9
Author: josiah14 <praenato14@gmail.com>
Date:   Sat Nov 22 22:15:54 2014 -0600

    make it easy to add support for new shells

commit baa863ccdeb5730531c72f46d9f6330a1b541d94
Author: josiah14 <praenato14@gmail.com>
Date:   Fri Nov 21 20:03:17 2014 -0600

    minor refactoring to demonstrate configuration power

commit aeaaf90e2e8d79861446ce678d13f732cb8b2ebf
Author: josiah14 <praenato14@gmail.com>
Date:   Fri Nov 21 19:55:06 2014 -0600

    configure type system to enable runtime selection of shell prompt type to build

commit 0409ac9c083139c671cd1006b9c05d01e928b8d7
Author: josiah14 <praenato14@gmail.com>
Date:   Sun Nov 16 16:27:03 2014 -0600

    save rough draft of type system refactoring