Rework function attributes support.

Preferentially use (and now support) __closure__ instead of
func_closure and __defaults__ instead of func_defaults.  Ensure
consistent support, especially being writable and deletable, for
function attributes compared to CPython and unskip relevant portions
in test suite.

Fixes http://bugs.jython.org/issue2183