added behaviors

Added the final `context`-like macro, `behavior`. These are useful for
testing behaviors that are common across multiple datatypes.