dhcp_client: initialize request message for class DHCPMessage

This provides a function InitRequest to initialize a DHCP
message from client to server.
This adds a static function to generate a random transaction
id for request message.
This also introduces a few new DHCP options into class
DHCPMessage.

Bug: 25642025
TEST=compile and unittests
Change-Id: If9efdadb6c49e587cf93b5a5476136a610a15cd2
diff --git a/dhcp_options.h b/dhcp_options.h
index 48733c7..1e4d6d9 100644
--- a/dhcp_options.h
+++ b/dhcp_options.h
@@ -20,12 +20,16 @@
 namespace dhcp_client {
 // Constants for DHCP options.
 const uint8_t kDHCPOptionPad = 0;
+const uint8_t kDHCPOptionSubnetMask = 1;
+const uint8_t kDHCPOptionRouter = 3;
 const uint8_t kDHCPOptionDNSServer = 6;
+const uint8_t kDHCPOptionDomainName = 15;
 const uint8_t kDHCPOptionLeaseTime = 51;
 const uint8_t kDHCPOptionMessageType = 53;
 const uint8_t kDHCPOptionServerIdentifier = 54;
 const uint8_t kDHCPOptionRenewalTime = 58;
 const uint8_t kDHCPOptionRebindingTime = 59;
+const uint8_t kDHCPOptionClientIdentifier = 61;
 const uint8_t kDHCPOptionEnd = 255;
 
 const int kDHCPOptionLength = 312;