Refact CaSH to be more modular
add persistent history feature to CaSH
change error exit status
update changelog