-replace java.util.Map with immutable persistent map based on prefix tree
-change CodeEditorActivity into a View
  -MainActivity had to transfer more than 1mb of data to CodeEditorActivity using an Intent, but it doesn't allow sending more than 1mb. using Views avoids serialization/IPC
-new bug: race condition when selecting two codes at once from the recent codes list
  -it somehow opens two code editors, one overlayed on the other
  -pressing + to add a new code multiple times really fast seems to open multiple fresh code editors overlayed on each other
render alias of code instead of cycle symbol ("^") when there's an alias
hhh
fix race condition causing multiple CodeEditors to be superimosed

the race condition was introduced and described in eda253f8a81e96cd8bc5d545b2fef18e9316db57
MainActivity: merge received codeLabelAliases instead of adopting it
MainActivity: more defense against going into invalid states
allow user to follow paths in a code