Add HashMap #map, #mapKeys, #mapValues + convert to/from j.u.Map
Add HashMap#foreach
Fix: ignore null values in HashMap#set

Conflicts:
	core/src/main/java/fj/data/HashMap.java
Fix: known stack overflow bug in Stream#bind

This fixes a known[1][2] bug which often manifests in
stack overflow errors in production usage of the
FJ library's Stream class.

[1] http://code.google.com/p/functionaljava/issues/detail?id=16
[2] http://stackoverflow.com/questions/10915279/functionaljava-app-throws-stackoverflowerror-with-stream-in-stack-trace
Fix test to trigger stack overflow bug w/o prev fix
Avoid StackOverflowErrors when sorting and zipping.

Change the implementations of sort() and zipWith() from recursive to iterative, to avoid blowing the stack on large lists.
Conflicts:
	core/src/main/java/fj/data/List.java
Disambiguate foreach(...) overloadings. Use native curryfication.