ofproto: make binary code loadable

I've been using the latest RYU source from GIT, and building my own python
eggs.  When launching ryu-manager, I get the following error:

[root@hostname ryu]# ryu-manager
Traceback (most recent call last):
  File "/usr/bin/ryu-manager", line 5, in <module>
    pkg_resources.run_script('ryu==2.2', 'ryu-manager')
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 461, in
run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1194, in
run_script
    execfile(script_filename, namespace, namespace)
  File
"/usr/lib/python2.6/site-packages/ryu-2.2-py2.6.egg/EGG-INFO/scripts/ryu-manage\
r",
line 43, in <module>
    from ryu.topology import switches
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427,
in <module>
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574,
in Switches
AttributeError: 'module' object has no attribute 'EventOFPPortStatus'

[root@hostname ryu]# python ./bin/ryu-manager
Traceback (most recent call last):
  File "./bin/ryu-manager", line 55, in <module>
    from ryu.topology import switches
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427,
in <module>
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574,
in Switches
AttributeError: 'module' object has no attribute 'EventOFPPortStatus'

I found that I could execute ryu-manager correctly from the interactive
python shell but not from the command line, and looked at the derivation of
Event classes from pathnames.
It occurred to me that the eggs would not necessarily include the source
files, so I tried successfully to make the code look up both source and
compiled filenames, and return the union of that.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
ofproto: _baseattribute can be class attribute

So that it can save memory a bit.

Cc: yamamoto@valinux.co.jp
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>