Refactor breadcrumbs

Currently the trail of breadcrumbs involves logic spread across a number of areas. This attempts to consolidate and simplify it.

Some discussion around the classes created under ``app/domain`` could be useful; I ended up using a syntax along the lines of  ``DomainObject.new(params)`` rather than ``DomainObject.new(params).call`` which has been the convention so far with our service objects.

@andrewgarner @gjvis @jongilbraith 
I prefer the brevity of ``Object#method`` but I agree that ``Object#public_method`` is probably the more correct thing