Add more flexibility and support more operations

Updated the library to be more flexible. There are times when order in
LQL matters very much. Adding to arrays and joining them at the end can
only take you so far.

This revamp adds in methods for many of the existing LQL operators
available and keeps order in tact.

There are probably some backward compatibility breaks in this revamped
code but hopefully only for things added by me in the last few weeks.