Allow non-function decoratables

The 'callback' parameter can now also be

- an ast expr or
- a custom type that has an .ast(value_name) method and a .value
  attribute.
Add example code and explanations for black_magic.decorator to README