Initial conversion code via ctors

As described on openmicroscopy/ome-documenation#1041,
this enables converting from most enums of one unit
to another.
Use target unit during conversion
Add a simple units tests for conversions
Add support for angstroms
Set unit on conversion
Python conversion ctors
Fix API.ice whitespace
More whitespace fixes
Add missing 'idempotent' keywords

A number of methods were missing `idempotent` meaning
that the Ice runtime would not retry them in the case
of a network exception.

The methods listed here should all be double checked
for idempotency and possibly other methods should be
included.
Move MARK up to top level for Python builds.
Set default MARK and then test for forced unsetting.
Add test for trac:11939 #3228
Get the FileAnnotation ID after it's been saved
Support Ice 3.4 enum "API"
Add getSymbol method to Java
Add getSymbol method to Python
Merge pull request #3242 from manics/test-11939

Add test for trac:11939 #3228
Merge pull request #3241 from ximenesuk/default-build-marker

User default marker for Python tests
Merge pull request #3238 from joshmoore/idempotent-cleanup

Idempotent cleanup
Merge pull request #3227 from joshmoore/units-conversion

Conversion code for Java/Python