Two renames for clarity

* Renamed AbstractStockRecordController to BaseStockRecordController
  That's more in line with how e.g. Django comparable interface classes.
* Rename has_stockrecord() to has_stockrecords()
  More clearly expresses that there might be more.
* Removed accidentally committed stockrecord property
  That was only helpful for the refactoring process.
Add price_excl_tax to stock record controller

That's not part of the wrappers because it's a field on the stock
record. But as the stock record controller selects between different
stock records, it is bound to change.

Also renamed calculate_tax in the DefaultWrapper to price_tax as used in
StockRecord and StockRecordController
Docstrings!

Normalised docstrings between DefaultWrapper, AbstractStockRecord and
BaseStockRecordController. Also added a docstring including ASCII UML
for the BaseStockRecordController.