[hibernate-dev] Redefining the API/SPI/implementation split