fix segfault on portless OFPT_FEATURES_REPLY

The C function handle_features_reply() takes a number of C data items as
input, produces a FeaturesReply Ruby object and delivers it to the
features_reply() method of the Controller class.

Commit 58989d1 extended the function with an extra step picking only
physical ports from the input list of ports and placing these onto a
separate list. However, the new code didn't check if the input list of
ports is NULL, which stands for a valid OFPT_FEATURES_REPLY message with
no port descriptors. The controller running the show-switch-features.rb
script from trema-apps repository would crash with a segfault:

An OpenFlow message is received from remote.
Validating an OpenFlow message ( version = 0x1, type = 0x6, ...
Validation completed ( ret = 0 ).
A features reply message is received from ..., # of phy ports = 0 ).
Calling features reply handler ( ...
.../trema/ruby/trema/dsl/runner.rb:157: [BUG] Segmentation fault
ruby 1.8.7 (2012-10-12 patchlevel 371) [x86_64-linux]

An extra check for NULL in handle_features_reply() resolves the issue.