Issue #125: ColorValue object

ColorValue is now an object that holds data about a colorvalue. It includes:

* reference to the ColorDefinition
* actual value of the color
* label, if any

There are multiple subclasses, of which SimpleColorValue is the one used everywhere.

AssetValue is now an object that holds data about an assetvalue. It includes:

* reference to the AssetDefinition
* actual value of the asset

There is one main subclass, AdditiveAssetValue which is used everywhere.

ColorTarget and AssetTarget correspond to targets of various TxSpecs.

* created colorvalue.py
* added unit tests for colorvalue.py
* refactored colordef.py to use SimpleColorValue
* created ColorTarget (holds address and ColorValue) in txspec
* changed BasicTxSpec to use AssetTarget
* changed SimpleOperationalTxSpec to use ColorTarget
* added unit tests for txspec.py
* added unit tests for blockchain.py
* refactored some of txcons
* got rid of is_monoasset and use is_monocolor exclusively
* got rid of unused is_uncolored
* added unit tests for txcons.py
* fixed unit tests for txdb.py
* moved asset.py and test_asset.py to coloredcoinlib
* changed wallet_controller to use the new AssetTarget
* added unit tests for wallet_controller

Note I haven't tested p2p. Please do that before merging