Make __call__ a property
Support multiple syntaxes and improved documentation/tests

This is done using a base Infix type and a type generated with
attributes based on the selected syntax. These types could probably
be generated when the module is loaded, really.

Doctest has been used to test the examples in the readme.