Simplify libmadx.get_table return signature
Merge branch 'remote-exception-traceback' into simplify-libmadx-gettable
Fix str.split in libmadx._split_header_line

str.split expects the 'maxsplit' parameter as its *second* *non-keyword*
argument.
Fix regression: table name needs to be encoded

On python3 str and bytes are different objects and we need bytes to
communicate with the C API.
Enable sharing connections to remote process

The Madx object shouldn't assume to be the sole owner of the
LibMadxClient connection. I will add a Sequence type soon, that also
needs to talk to the remote process.

The LibMadxClient object will automatically close the connection when it
is garbage collected. Since there are no cyclic references in the RPC
code (I believe), the finalization will occur at the same time that the
last object using the connection is finalized, which is optimal.

Closing the connection implicitly has one further upside: we can pass
any libmadx object in the constructor without assuming that there is a
connection object supporting it. This means, if you feel that talking to
a remote process is too much overhead, you can do the following:

    import libmadx
    m = Madx(libmadx=libmadx)

which will make the Madx object directly use the libmadx module.
Perform some cleanup in libmadx.pxd

- for simplicity list only the struct members that are needed
- for maintainability list the struct members in the correct order
- for explicity always use the most specific header file name
- for consistency use common spacing for pointer types
Extend/change API to retrieve sequence information

NOTE: the `libmadx.get_sequences` function now has a different return
signature, it just returns the list of sequence names, which is much
simpler than beforehand. More information about individual sequences can
be recovered with additional functions.

The `Madx.get_sequences` has also changed. It now returns a list of
Sequence instances. These objects can be used to lazily obtain further
information if desired.

Furthermore, adding a convenience property Madx.sequence to get/set the
name of the active sequence.
Clean Madx.__init__ a bit

Operator spacing really bugged me. Furthermore, all member variables are
now initialized uniformly and will always be available (even if an
exception is raised in the constructor).
Allow sequence=None in Madx member functions
Fix weird runtime import error
Return only the table name from libmadx.get_twiss
Return Expression objects if possible

NOTE: this makes the returned types the columns in `libmadx.get_beam()`
more unpredictable which may be a bad idea.

It means, that you can not safely write implicit code like this any more:

    2 * seq.beam['ex']

But rather:

    2 * float(seq.beam['ex'])

And you will get the expression string via:

    str(seq.beam['ex'])
Merge branch 'simplify-libmadx-gettable' into active-sequence

Conflicts:
	src/cern/cpymad/libmadx.pyx
Add function libmadx.get_table_columns
Use Table proxy class for TWISS results
Fix usage of get_sequences()

get_sequences now returns a list of Sequence objects. The sequence names
can be accessed via the property `.name`. If the name is all, that is
needed, one should better call get_sequence_names().
Add existence checks for Table/Sequence