Feature/bk finalise tap fundamentals

I have implemented everything discussed in issue #70.  I would follow the normal `git flow feature finish`
approach but thought there were enough changes to classes already in use by people that a proper pull request was more suited.

In particular, method or constructors of the following classes have changed which might cause existing code to break:
- TAnalysedPulse
- TVAnalysedPulseGenerator.h
- ExportPulse

This being a pull request you should be easily able to browse the diff of changes from develop below [ EDIT: it's at the top of the thread it seems].

This method implements the flyweight-esque design so that we don't actually need more than an int to know the source the TAP contains.  Does anyone see any problems in this implementation that I've missed?