Implement LineItem::Base class

This class is designed to be sub-classed by specific
line-items.

Tests are included in this commit.