Support INSERT with SELECT

Add support for inserting the result of a query in addition to inserting
literal values.  Update Insert to only append to valueSet when
appropriate.  Update the Postgres dialect to only output "VALUES" as
part of an INSERT statement if values are present (including default
values).  Add tests.

Note:  There is some ambiguity of the user intent when insert is called
without any values.  The user may intend to either insert a row
consisting entirely of default values or they may intend to insert a row
based on a subsequently added SELECT statement.  Although we could defer
resolution until the SELECT statement is added (or not) through either
manipulating the query object from the select method or additional logic
in the dialect, the approach taken in this commit is to use a simple
heuristic:  If the insert includes any columns, it is assumed that a
SELECT will follow, otherwise default values are used.

This commit addresses issue #111.

Signed-off-by: Kevin Locke <klocke@quantpost.com>
Clone Column returned by .value()

Previously, calling .value() would mutate the Column object.  This
causes unexpected behavior when subsequent use of the column carries the
previously set value.  For example:

table.insert(col1.value(1));
table.insert(col1).select(col2).from(table2);

Would cause a syntax error because insert(col1) would be interpreted as
inserting the value 1 into col1 and would not accept an appended select
statement.

This is a change which could break any users depending on this behavior.
Although none of the tests depend on this behavior and the new behavior
seems more reasonable (to me, obviously), there is risk of user
breakage.

Signed-off-by: Kevin Locke <klocke@quantpost.com>
allow multiple order() calls
Merge pull request #113 from sma/master

allow multiple calls to `order()` when constructing an `ORDER BY` clause

I'm gonna merge it and then make the minor refactor. Thanks!
refactor Query.order to fit the style of Query.select
refactor query.js
removing unnecessary code
Merge pull request #114 from yc662/cleanup

Unnecessary code in createIndex, dropIndex and indexes
Merge branch 'master' of github.com:brianc/node-sql
Add bitwise AND, OR for binary expressions.
CastNode and tests.
save the chosen dialect name
dry
tests for dialectName
Merge pull request #121 from brianc/features/store_dialect_name

make the dialect name available to the outer world
data_type to dataType
Merge pull request #119 from yc662/CastNode

CastNode and tests.
adding bitwise xor and bitwise not
Merge pull request #120 from yc662/bitwise

Add bitwise AND, OR for binary expressions.
Bump version