Added support for Binding and Currying

Javascript is a functional language, as such we should be able to functionally access objects.
This pull request adds support for binding and currying. I have added (30) tests to prove that it works.
This commit allows us to create several dynamic functions from a root function.
It is also backwards compatible (I only added new tests, did not modify old ones.)

One important note, I removed the value argument from the Remove function, it was not used and there was no mention of it in the documentation.