[Reviewer: Mike] Multiple-AS chains

Hi Mike - please can you review? You should merge isc-headers (pull #8) first, otherwise this will be a bit confusing!

There's quite a lot here, but the high-level view is as follows:

* Split out AsChainStep from AsChain. An AsChain is a static list of ASs (plus extra info), and an AsChainStep is a pointer into that chain. Neither is logically mutable.
* Add an AsChainTable containing a map of ODI tokens to AsChainSteps.
* The AsChain lasts as long as the UASTransaction that creates it. We need a mechanism to manage this, because the UASTransaction may create up to two AsChains (orig and term), possibly more once orig-cdiv is implemented.
* Various bugfixes and UT enhancements.

Details in the commit log.