Add transforms support in preql

This PR's goal is to allow preql methods to use both basic and fluent features (post and pre transform, resp). The biggest change is that `conditioning_row` can now be either a list (WRT the schema `preql.feature_names`) or a dict; if it is a dict, the keys can be either fluent or basic features.

Still to do:

- add documentation
- add unit tests
Input rows are assumed to be dense lists of strings throughout the code so there should be no need to check for None.     I expect this will change though since this input format is inconvenient for use in pure python.