add comments, organize note controller, bind note's ng-show to model

each note was previously using {{ showNote(note) }} to determine
visibility with ngShow/ngHide. this is a performance problem because
angular will constantly poll showNote(). now, notes have a 'visible'
property that is used with ngShow/ngHide that is updated by a
function that excecutes any time a 'visibilityModifier' is changed

note controller has been completely re-organized and comments have
been added to separate its different parts.