VOL-1314 - Cleanup and remove permissive and other compiler warnings

Removed -fpermissive and -fno-literals warning suppression.

Added helper methods for BAL bitwise operators to properly typecast to/from int/enum types.
Technically, these should be pushed back to broadcom in their BAL. But, for now, this
will handle the bitmanipulation warnings.

Changed many BAL apis to use API macros to set attributes which implicitly sets internal
presence flags rather than doing it manually. Overall, better to use the API macros for
consistency.

Fixed errant enum value for oper vs admin state

Fixed make clean that didn't clean googleapis after directory refactoring

Change-Id: I01dd0539c550674721bc00a0b78273dc75b554c8
diff --git a/agent/Makefile.in b/agent/Makefile.in
index 20ff796..d99ec78 100644
--- a/agent/Makefile.in
+++ b/agent/Makefile.in
@@ -61,7 +61,7 @@
 CXXFLAGS += @CXXFLAGS@
 CXXFLAGS += $(shell pkg-config --cflags-only-I grpc++)
 CPPFLAGS += `pkg-config --cflags protobuf grpc`
-CXXFLAGS += -std=c++11 -fpermissive -Wno-literal-suffix
+CXXFLAGS += -std=c++11
 LDFLAGS += @LDFLAGS@
 LDFLAGS += `pkg-config --libs protobuf grpc++ grpc` -ldl -lgpr
 CXXFLAGSDEVICE = -I./device -I./device/$(OPENOLTDEVICE) -I./device/generic
@@ -278,7 +278,7 @@
 
 clean: protos-clean deb-cleanup
 	rm -f $(OBJS) $(DEPS)
-	rm -rf protos/googleapis
+	rm -rf $(OPENOLT_PROTOS_DIR)/googleapis
 	rm -f $(BUILD_DIR)/libgrpc.so.6 $(BUILD_DIR)/libgrpc++.so.1
 	rm -f $(BUILD_DIR)/libbal_api_dist.so
 	rm -f $(BUILD_DIR)/openolt