Adopt a more functional approach, more tests.

- Working on tests. Eventually there will be a test for every function.
- Removed Dictionary in favor of functions. I might add an implementation of the ES6 collections later.
- each/map iterates both Objects and Arrays. For arrays, it's blazing fast. Compared to Array.forEach, anyway.