Enhance stack

* rename `add/remove` to `push/pop`.
* throw `StackError` instead of return `undefined`.
* some test.