Cosmetics

Get rid of some alignment that's too tight for the new functions
(and that was not consistent anyway), indent some module content,
and such futile things.
Add Hashtbl.{modify/modify_def/modify_opt}
Add Map/Splay.modify_opt

Note: SplayTree is not splayed on deletion, hopefully it's correct.
Add IMap.modify/modify_rec/modify_opt

Note: I had to make public AvlTree.create for better performance when
modifying a singleton (which I believe is quite frequent)
Add List.modify/modify_def/modify_opt for association list

Obviously performance is less of an issue here.
Add Multi{P}Map.modify and friends

No tests since that's just wrappers around {P}Map
Add Hashtbl.{map,filter,filteri,filter_map}_inplace
Add functional tests of modify functions in testsuite/test_modifiable.ml
Merge pull request #351 from madroach/master

Change BatArray.backwards to match
Merge pull request #349 from rixed/add-modify

Add modify function and tests to keyed containers
Fix BatPervasives.undefined

Otherwise the failwith (which got type string -> ('b -> 'c) here)
will be evaluated when the message parameter is passed.
Now it gets type 'a -> 'b and is evaluated only when both parameters are passed.