PicaEncoder implemented

The PicaEncoder encodes the "Record-Field-Subfields" Stream into pica+
Format. If there are S-subfields in the input stream which is processed
by PicaDecoder (by default) it will be not able to encode them to
original format (because of lost of data during the decoding). In this
case, the decoder should use the option appendControlSubField="false" to
keep the original data.
The #111 Requests are implemented.
The field and subfield names are check by pattern now.
The sequences of the stream elements are controlled and it must be
nested structured.
The source code is optimized.
The changes make the code more readable.
Some unnecessary checks are deleted.
Merge branch 'adding-pica-encoder' of http://github.com/liyining/metafacture-core into liyining-adding-pica-encoder
Nested entities will be checked now.
The javadoc about the S (control) subfield is still there, but the
newest core does not support its processing.
Merge branch 'adding-pica-encoder' of http://github.com/liyining/metafacture-core into liyining-adding-pica-encoder
Minor clean-up