Identifier: Prefix redesign

Previously, we had two attributes related to an identifier’s prefix
(\i / \I):

- enforcePrefix, an initializer parameter to enforce a prefix even if
  unnecessary, and
- usePrefix, a computed attribute to determine when a prefix would
  actually be present: if enforced, or if necessary (case mismatch,
  keyword).

There were several problems with this:

- It promised more information than is actually present in Ceylon code:
  if the prefix is necessary, then it doesn’t make sense to ask if it
  was enforced or not;
- Identifier “deciding” by itself if the prefix would be present or not
  is far more semantics than has its place in ceylon.ast;
- hiding the presence of a prefix from the creator is dangerous.

Instead, we now have only one initializer parameter usePrefix, and if
the prefix is necessary but not present, the initializer throws an
AssertionError.

While updating the tests, I noticed how dangerous the previous design
was: I fairly often created “invalid” identifiers like
`UIdentifier("lid")` or `LIdentifier("out")`, relying on Identifier to
“magically” fix my semantical error with the usePrefix attribute. In
reality, I should of course make visible that the prefix must be present
by using `UIdentifier("lid", true)` or `LIdentifier("out", true)`
instead.

For users who want the old behavior – to automatically add the prefix
only if it’s necessary – two utility functions have been added
(lidentifier and uidentifier).