SCHEMA-539. Improve lifecycle maintenance in Kiji classes

issue: https://jira.kiji.org/browse/SCHEMA-539

change state holder from atomic boolean to atomic reference of enum

add state checks to lifecycle objects where necessary

review: https://review.kiji.org/r/1175
SCHEMA-576. fix checkstyle errors introduced by SCHEMA-539

issue: https://jira.kiji.org/browse/SCHEMA-576
review: https://review.kiji.org/r/1188
SCHEMA-573. Kiji tools should print nicer error messages on user input errors.

issue: https://jira.kiji.org/browse/SCHEMA-573
review: https://review.kiji.org/r/1179
SCHEMA-569. Fixes security bug in revoke.

Also fixes a bug in HBaseKiji where the security manager wasn't correctly lazily instantiated.

issue: https://jira.kiji.org/browse/SCHEMA-569
review: https://review.kiji.org/r/1191
SCHEMA-578. protobuf library dependency conflict between Kiji and HBase/Hadoop

 - Downgrade protobuf dependency from 2.5.0 to 2.4.0a to match HBase/Hadoop version.
 - Make protobuf dependency provided.

issue: https://jira.kiji.org/browse/SCHEMA-578
review: https://review.kiji.org/r/1197
SCHEMA-574. Avro writer enum must be subset of reader enum.

 - Add lots of unit-tests.

issue: https://jira.kiji.org/browse/SCHEMA-574