Protocol 3.0.0 support for hmac authentication.

Admin feature changes related to SetUp, Pin Operations are not supported
in this commit. All admin test cases related to SetUp, Pin Ops, etc are
disabled temporarily until they are updated in the Java API and
simulator implementation.

This change/commit is incremental so that all parties can start testing
against Hmac authentication changes with this commit branch.
Get the default protocol version number defined in kinetic.proto when
applications use the API
(kinetic.client.ClientConfiguration/kinetic.simulator.SimulatorConfiguration)
to obtain the protocol version number.
Preliminary protocol 3.0.0 support for pin operations (erase db ops only
. lock/unlock are not supported yet).

Setup and Security are also supported for the new protocol.

Commit the code so that other components can test with the simulator.

Code clean up will follow.
Minor code clean up only. Will continue cleaning up and add new features
for protocol 3.0.0 in this branch.
Simulator and Java API:

Implemented UNSOLICITEDSTATUS auth type handshake protocol semantic. The
simualtor sends an UNSOLICITEDSTATUS message to client library that
connects to it and sets "connectionID", "clusterVersion", etc in it.

Client library implementation should wait/block the connection creation
process until the UNSOLICITEDSTATUS message is received. 

Client library is required to use the connectionID in all the
subsequential request messages.  Any request message sent without the
connectionID will be rejected (not yet enfornced, but will do so when
drive has the behavior).

Simulator sets the connectionID in each of the response message.
Includes GetLog.Configuration and GetLog.Limits in the UNSOLICITEDSTATUS
message.
Minor admin test code clean up with protocol 30.0.0 only. Will continue
cleaning up.
Simulator: 

Clear db, Security (ACL and Pins), and Setup data (cluster version) for
ERASE_PINOP/SECURE_ERASE_PINOP operations.

The simulator reset all its state to Default (out of box installation)
after ERASE_PINOP/SECURE_ERASE_PINOP successfully returned.
Java simulator:

Enforce TLS requirement for PINAuth operations.  Simulator set response
status code to INVALID_REQUEST if TLS requirement is not met (and no
service is performed).
Modify a test case related with TLS requirement for PINAuth operations.
Java API/Simulator:

A pin operation is authenticated with PINAuth authentication method.  No
user identity/Hmac information (HMACAuth) is set to the protocol
message.

A pin operation MUST be performed in a TLS connection.  Otherwise,
INVALID_REQUEST is set to the response message and the service request
is not performed in the simulator.
Test cases:
1. Modify admin test cases to compitable with protocol 3.0.0.
2. Change default admin client to kinetic admin client, all test cases
in KineticAdminTest use admin API to test.
3. Add a Test Helper in KineticTestHelpers.
Test case:
modify admin client test cases under directory of "simulator" work with
protocol 3.0.0.
Simulator: Initial lock/unlock pin operation implementation. Lock Enable
and Lock Disable features are also implemented in this commit.

Admin Client: Added interface to lock/unlock device.

Please see KineticAdminClient API JavaDoc for detailed documentation.
Added an example to perform firmware update with admin API using a TCP
service (non-TLS) connection.
Sync supported protocol source hash for Java API and simulator to
release 3.0.0:

https://github.com/Seagate/kinetic-protocol/commit/f74698fba2df685cbfa9b6b9de54f1d2398f8615

Minor code clean up - fixed compiler warnings.
Added admin API to set ACL.
Added admin API to set erase pin.
Added admin API to set lock pin.

Changed set security implementation in the simulator such that security
operation can only be set one at a time (not enforced yet until tests
are updated to use new APIs) for the above components.
Kinetic Test:
1. Add Lock/UnLock test cases.
2. Replace deprecated admin client API.
3. Remove V1/V2 protocol test cases.
4. Modify admin client API example.
5. Uncomment Hmac test case.
Clean up assert method in test cases from status message to status code.
Http/https transport support for protocol 3.0.0.

Please note that this (http/s) is a proto type implementation and is
supported by simulator and Java API only.