Now, a label declared with `public foo:` will be exported in the
`public_labels` property of `Program` objects.
Additionally, a test of this feature as well as the existing
duplicate label detection feature is added.
Change the return type of `assemble` so that it better reflects reality
Add docstrings for the public properties of Program objects