ppc: fix endian check (#1029)

* Remove `big_endian` field of `cs_struct`

Added a helper macro `MODE_IS_BIG_ENDIAN()` to check if
`CS_MODE_BIG_ENDIAN` is set.

Refactored `cs_open()` check for valid mode out of arch-specific code
into arch-independent code. Also added a valid mode check to
`cs_option()`.  The checks use a new global array
`arch_disallowed_mode_mask[]`, which is initialized in the arch-specific
`*_enable()` functions.

Fixes bug where endianness could not be set for ppc.

* Fix Mac OS brew for Travis CI
diff --git a/cs_priv.h b/cs_priv.h
index b47df31..8b7e5cd 100644
--- a/cs_priv.h
+++ b/cs_priv.h
@@ -37,7 +37,6 @@
 	void *printer_info; // aux info for printer
 	Disasm_t disasm;	// disassembler
 	void *getinsn_info; // auxiliary info for printer
-	bool big_endian;
 	GetName_t reg_name;
 	GetName_t insn_name;
 	GetName_t group_name;
@@ -58,6 +57,9 @@
 
 #define MAX_ARCH 8
 
+// Returns a bool (0 or 1) whether big endian is enabled for a mode
+#define MODE_IS_BIG_ENDIAN(mode) (((mode) & CS_MODE_BIG_ENDIAN) != 0)
+
 // constructor initialization for all archs
 extern cs_err (*arch_init[MAX_ARCH]) (cs_struct *);
 
@@ -67,6 +69,10 @@
 // deinitialized functions: to be called when cs_close() is called
 extern void (*arch_destroy[MAX_ARCH]) (cs_struct*);
 
+// bitmask for finding disallowed modes for an arch:
+// to be called in cs_open()/cs_option()
+extern cs_mode arch_disallowed_mode_mask[MAX_ARCH];
+
 extern unsigned int all_arch;
 
 extern cs_malloc_t cs_mem_malloc;